如何编写LINQ查询来执行此操作

时间:2009-09-24 12:48:09

标签: linq linq-to-sql iqueryable

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
}

2 个答案:

答案 0 :(得分:1)

天真的方法是将调用链接到Where方法,但这样你就只能实现AND行为

查看Joseph Albahari的PredicateBuilder课程。它允许使用OR运算符

构建动态Linq查询

答案 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子句的字符串。