0
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
}
4

2 に答える 2

1

単純なアプローチは、メソッドへの呼び出しをチェーンするWhereことですが、その方法では AND 動作しか実現できません

PredicateBuilderジョセフ・アルバハリによるクラスをチェックしてください。OR 演算子を使用して動的な Linq クエリを作成できます

于 2009-09-24T12:56:34.850 に答える
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");

where "Your where clause" は、動的に生成された where 句を含む文字列です。

于 2009-09-24T14:18:31.463 に答える