Exemplo n.º 1
0
        private static Query Count(IDataDescriptor descriptor)
        {
            var tableName = Dialect.ResolveTableName(descriptor);
            var sql       = Dialect.Count(descriptor, tableName, descriptor.Schema, null, null);

            return(new Query(sql));
        }
Exemplo n.º 2
0
        private static Query Count(IDataDescriptor descriptor, dynamic where)
        {
            object instance = where ?? new { };
            var    accessor = ReadAccessor.Create(instance.GetType());

            var whereHash       = accessor.AsReadOnlyDictionary(instance);
            var hashKeysRewrite = whereHash.Keys.ToDictionary(k => Dialect.ResolveColumnName(descriptor, k), v => v);

            var tableName   = Dialect.ResolveTableName(descriptor);
            var columnNames = Dialect.ResolveColumnNames(descriptor).ToList();

            var whereFilter = columnNames.Intersect(hashKeysRewrite.Keys).ToList();
            var parameters  =
                whereFilter.ToDictionary(key => $"{hashKeysRewrite[key]}", key => whereHash[hashKeysRewrite[key]]);
            var parameterKeys = parameters.Keys.ToList();

            var sql = Dialect.Count(descriptor, tableName, descriptor.Schema, whereFilter, parameterKeys);

            return(new Query(sql, parameters));
        }