我需要通过将文档列表传递给我正在努力使用循环动态构建的自定义过滤器来过滤文档列表:foreach
var mainPredicate = PredicateBuilder.True<Document>();
// mainPredicate is combined to other filters successfully here ...
var innerPredicate = PredicateBuilder.False<Document>();
foreach (var period in periods)
{
var p = period;
Expression<Func<Document, bool>> inPeriod =
d => d.Date >= p.DateFrom && d.Date <= p.DateTo;
innerPredicate = innerPredicate.Or(d => inPeriod.Invoke(d));
}
mainPredicate = mainPredicate.And(innerPredicate);
最后一行:
documents = this.ObjectSet.AsExpandable().Where(mainPredicate).ToList();
抛出此异常:
参数“d”未绑定在指定的 LINQ to Entities 查询表达式中。
任何人都知道为什么我会得到这个例外?我不明白我传递给 InPeriod 方法的“d”参数在哪里丢失了。我不知道这个工作缺少什么。我的代码与许多其他完美运行的示例相同。欢迎任何有关调用表达式及其在幕后工作的额外理论理论信息。