我正在尝试使用来自http://www.albahari.com/nutshell/predicatebuilder.aspx的 PredicateBuilder 在运行时动态创建 linq 表达式。
我目前有一个方法,它采用标准对象列表,然后将它们解析为多个谓词,就像这篇文章中描述的那样。
所以目前,我的代码支持以下场景:
WHERE
((a == <val1>) AND (b == <val2>) AND (c == <val3>))
OR
((a == <val4>) AND (b == <val2>) AND (c == <val3>))
但我需要它像这样工作:
WHERE
((a == <val1> OR a == <val4>) AND (b == <val2>) AND (c == <val3>))
OR
((a == <val7>) AND (b == <val5>) AND (c == <val6>))
我怎样才能做到这一点,以便我可以将两个“OR”“组合”在一起,以便逻辑正确流动?我不想要“a OR a AND b AND c”,我需要“(a OR a) AND b and C”。