private static Set[] FullSets <T>(IReflectionServices reflection, TableMetadata metadata, T value)
        {
            Set[] sets = new Set[metadata.Fields.Count];
            int   n    = 0;

            foreach (var item in metadata.Fields)
            {
                sets[n++] = NewSet(reflection, value, item);
            }
            return(sets);
        }
        private static Set[] PartialSets <T>(IReflectionServices reflection, TableMetadata metadata, T value, string[] columns)
        {
            IList <Set> sets = new List <Set>();

            foreach (var item in metadata.Fields)
            {
                if (!columns.Contains(item.Key))
                {
                    continue;
                }
                sets.Add(NewSet(reflection, value, item));
            }
            return(sets.ToArray());
        }
 private static Set NewSet <T>(IReflectionServices reflection, T value, KeyValuePair <string, FieldMetadata> item)
 {
     return(new Set(item.Key, new Literal(item.Value.DataType, reflection.GetValue(item, value))));
 }