public static Query Delete(IDataDescriptor descriptor, object where)
        {
            var hash       = Hash.FromAnonymousObject(where);
            var keys       = hash.Keys.Intersect(Dialect.ResolveColumnNames(descriptor)).ToArray();
            var sql        = Dialect.DeleteFrom(descriptor.Table, descriptor.Schema, keys);
            var parameters = keys.ToDictionary(key => $"{Dialect.Parameter}{key}", key => hash[key]);

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