我正在尝试构建动态Expression<Func<User, bool>>
以在MongoDB LINQ Where查询过滤器中使用。
我正在使用if-else块动态构建表达式,并使用Albahari的PredicateBuilder.And()
(http://www.albahari.com/nutshell/predicatebuilder.aspx)组合表达式。
在这些PredicateBuilder.True<T>()
块中使用AND
会导致MongoDB LINQ转换程序抛出此异常:
Unsupported filter: Invoke(f => True, {document}).
我还可以使用哪种其他表达格式表达user=>true
的逻辑,以便MongoDB LINQ提供程序可以接受它?
注意:我尝试使用 返回Expression.Lambda(Expression.Constant(true),Expression.Parameter(type,“ _”))); 我在另一篇SO帖子(https://stackoverflow.com/a/36773532/10811808中看到过,但我不知道如何将此ConstantExpression转换为Expression>。