Exemplo n.º 1
0
        public static Query DeleteAll <T>()
        {
            var descriptor = GetDescriptor <T>();
            var sql        = Dialect.Delete(Dialect.ResolveTableName(descriptor), descriptor.Schema);

            return(new Query(sql));
        }
Exemplo n.º 2
0
        private static Query Delete(IDataDescriptor descriptor, IReadOnlyDictionary <string, object> whereHash)
        {
            var whereHashKeyRewrite =
                whereHash.Keys.ToDictionary(k => Dialect.ResolveColumnName(descriptor, k), v => v);

            var whereFilter     = Dialect.ResolveColumnNames(descriptor).Intersect(whereHashKeyRewrite.Keys).ToList();
            var whereParams     = whereFilter.ToDictionary(key => $"{whereHashKeyRewrite[key]}", key => whereHash[whereHashKeyRewrite[key]]);
            var whereParameters = whereParams.Keys.ToList();

            var sql        = Dialect.Delete(descriptor, Dialect.ResolveTableName(descriptor), descriptor.Schema, whereFilter, whereParameters);
            var parameters = whereParams.ToDictionary(k => $"{Dialect.Parameter}{k.Key}", v => v.Value);

            return(new Query(sql, parameters));
        }
Exemplo n.º 3
0
        private static Query Delete(IDataDescriptor descriptor, List <string> whereFilter,
                                    IDictionary <string, object> whereHash)
        {
            var whereHashKeyRewrite =
                whereHash.Keys.ToDictionary(k => Dialect.ResolveColumnName(descriptor, k), v => v);
            var whereParams = whereFilter.ToDictionary(key => $"{whereHashKeyRewrite[key]}",
                                                       key => whereHash[whereHashKeyRewrite[key]]);
            var whereParameters = whereParams.Keys.ToList();

            var sql = Dialect.Delete(descriptor, Dialect.ResolveTableName(descriptor), descriptor.Schema, whereFilter,
                                     whereParameters);
            var @params = Hash.FromDictionary(whereParams);

            return(new Query(sql, @params));
        }