【发布时间】:2011-06-13 09:49:54
【问题描述】:
您好,我正在使用动态 linq,使用 LinqKit 的 PredicateBuilder。
如果您查看代码,在 TODO 注释之后的行,我想完成类似的事情 假设在 objectList 即有 2 个对象。对象1,对象2 (object1.property1 AND object1.property2) OR (object2.property1 AND object2.property2)
我知道 TODO 之后的行不正确,但我正在寻找该行的正确版本。
var finalPredicate = PredicateBuilder.True(); foreach(objectList 中的变量项) { var predicate = PredicateBuilder.True(); predicate = predicate.And (p => p.Description.Contains (item.property1)); predicate = predicate.And (p => p.Description.Contains (item.property2)); //去做: finalPredicate = finalPredicate.Or(predicate); } }【问题讨论】:
-
这是最终谓词:` finalPredicate{f => (True OrElse Invoke(f => (((True AndAlso Invoke(p => p.ef.Contains(value(Service1+ c__DisplayClass2 ).item.FilterDomain), f)) AndAlso Invoke(p => p.fname.Contains(value(Service1+ c__DisplayClass2).item.ff), f)) AndAlso Invoke(p => p.subject.Contains( value(Service1+ c__DisplayClass2).item.fs), f)), f))}System.Linq.Expressions.Expression
> ` -
这是错误消息:参数“f”未绑定在指定的 LINQ to Entities 查询表达式中。