IQueryable<SomeType> result = (from x in Context.XXX select x);
现在我需要做的是以下(编写伪代码,我需要实际代码):
foreach(var i in items)
{
// Where the object "i" has 2 properties
// 1) i.Operator (values of which can be AND or OR)
// 2) i.SomeID (values of which can be 1 .. 10)
// I need to build the LINQ query with "ands" and "ors" based on the i's in this foreach
}
答案 0 :(得分:1)
天真的方法是将调用链接到Where
方法,但这样你就只能实现AND行为
查看Joseph Albahari的PredicateBuilder
课程。它允许使用OR运算符
答案 1 :(得分:0)
我们使用Dynamic LINQ库来完成你想要做的事情(在这里找到:http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx)
您可以使用以下内容:
var finalResults = results.Where("Your where clause");
其中“Your where子句”是包含动态生成的where子句的字符串。