Deleteable support query filter

This commit is contained in:
sunkaixuna 2021-09-30 00:15:33 +08:00
parent aebc63e20a
commit 55c166362c
3 changed files with 14 additions and 0 deletions

View File

@ -29,6 +29,9 @@ namespace OrmTest
db.Queryable<Order>().ToList(); db.Queryable<Order>().ToList();
//SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] WHERE ([Name] like '%'+@MethodConst0+'%') //SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] WHERE ([Name] like '%'+@MethodConst0+'%')
//delete Filter
db.Deleteable<Order>().EnableQueryFilter().Where(it=>it.Id==1).ExecuteCommand();
db.Queryable<OrderItem, Order>((i, o) => i.OrderId == o.Id) db.Queryable<OrderItem, Order>((i, o) => i.OrderId == o.Id)
.Where(i => i.OrderId != 0) .Where(i => i.OrderId != 0)
.Select("i.*").ToList(); .Select("i.*").ToList();
@ -93,6 +96,8 @@ namespace OrmTest
db.Aop.OnLogExecuted = (sql, p) => db.Aop.OnLogExecuted = (sql, p) =>
{ {
Console.WriteLine(sql); Console.WriteLine(sql);
Console.WriteLine(string.Join(",",p.Select(it=>it.ParameterName+":"+it.Value)));
Console.WriteLine();
}; };
return db; return db;
} }

View File

@ -250,6 +250,14 @@ namespace SqlSugar
}; };
return this; return this;
} }
public IDeleteable<T> EnableQueryFilter()
{
var queryable = this.Context.Queryable<T>();
queryable.QueryBuilder.LambdaExpressions.ParameterIndex= 1000;
var sqlable= queryable.ToSql();
this.Where(Regex.Split(sqlable.Key," Where ",RegexOptions.IgnoreCase).Last(), sqlable.Value);
return this;
}
public IDeleteable<T> RemoveDataCache(string likeString) public IDeleteable<T> RemoveDataCache(string likeString)
{ {
this.RemoveCacheFunc = () => this.RemoveCacheFunc = () =>

View File

@ -35,6 +35,7 @@ namespace SqlSugar
IDeleteable<T> RemoveDataCache(); IDeleteable<T> RemoveDataCache();
IDeleteable<T> RemoveDataCache(string likeString); IDeleteable<T> RemoveDataCache(string likeString);
KeyValuePair<string, List<SugarParameter>> ToSql(); KeyValuePair<string, List<SugarParameter>> ToSql();
IDeleteable<T> EnableQueryFilter();
void AddQueue(); void AddQueue();
} }
} }