【发布时间】:2019-09-25 12:17:20
【问题描述】:
有没有办法缩短这段代码
Expression<Func<MyType, bool>> a => t => ...;
Expression<Func<MyType, bool>> b => t => ...;
Expression<Func<MyType, bool>> c => t => ...;
await myIQueryableOfMyType
.Where(a)
.Where(b)
.Where(c)
.ToArrayAsync()
在某种程度上,我有一个带有 Single Where 子句的单一 Experssion。 我的目的是将“a”、“b”、“c”表达式替换为可变条件集。
我尝试聚合一个函数并将其设置在新的 Lambda 表达式中
Expression<Func<MyType, bool>>[] predicates = ...
Func<MyType, bool> func = t => predicates == null || predicates.Aggregate(true, (prev, current) => prev && current.Compile()(t));
但它不适用于实体框架的 IQueryable 集合
【问题讨论】:
标签: c# entity-framework lambda expression