diff --git a/Src/Asp.Net/SqlServerTest/Demo/Democ_GobalFilter.cs b/Src/Asp.Net/SqlServerTest/Demo/Democ_GobalFilter.cs index 5291d35d0..2432ab8aa 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Democ_GobalFilter.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Democ_GobalFilter.cs @@ -29,6 +29,9 @@ namespace OrmTest db.Queryable().ToList(); //SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] WHERE ([Name] like '%'+@MethodConst0+'%') + //delete Filter + db.Deleteable().EnableQueryFilter().Where(it=>it.Id==1).ExecuteCommand(); + db.Queryable((i, o) => i.OrderId == o.Id) .Where(i => i.OrderId != 0) .Select("i.*").ToList(); @@ -93,6 +96,8 @@ namespace OrmTest db.Aop.OnLogExecuted = (sql, p) => { Console.WriteLine(sql); + Console.WriteLine(string.Join(",",p.Select(it=>it.ParameterName+":"+it.Value))); + Console.WriteLine(); }; return db; } diff --git a/Src/Asp.Net/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs index 766d2cb9e..b2d8ef8e9 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs @@ -250,6 +250,14 @@ namespace SqlSugar }; return this; } + public IDeleteable EnableQueryFilter() + { + var queryable = this.Context.Queryable(); + 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 RemoveDataCache(string likeString) { this.RemoveCacheFunc = () => diff --git a/Src/Asp.Net/SqlSugar/Interface/IDeleteable.cs b/Src/Asp.Net/SqlSugar/Interface/IDeleteable.cs index de915547e..789e057d1 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IDeleteable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IDeleteable.cs @@ -35,6 +35,7 @@ namespace SqlSugar IDeleteable RemoveDataCache(); IDeleteable RemoveDataCache(string likeString); KeyValuePair> ToSql(); + IDeleteable EnableQueryFilter(); void AddQueue(); } }