假设我有一个查询,像这样:
r = r.Where(x => iEnumerableMachineNames.Contains(x.Machine.Name)
|| x.Server==true);
有没有一种方法可以在语句之外构建谓词(我想这就是它的名称),例如
t = (x => iEnumerableMachineNames.Contains(x.Machine.Name));
s = (x => x.Server==true)
q = t.Or(s);
r = r.Where(x => q);
基本上我想根据输入参数以编程方式构建查询,适用于EF 5。
!testXyz
- 如果你想要一个特定的测试,表达式将会评估为假并强制剩余的布尔表达式进行评估。如果你不想测试x.Server == true
,那么你设置testIsServer = false
并且它将评估为true
,从而不过滤掉那些不是!x.Server
的项目。 - Moho