2017-06-01 11 views
-1

を使用せずに指定された構文は、句が含まれている句はダイナミックLINQのは、プレースホルダ

ids = new int[] {1,2,3,4}; 
dataContext.Table.Where("@0.Contains(id)", ids); 

ですが、私がしたいことは

dataContext.Table.Where("{1,2,3,4}.Contains(id)"); //getting exception here 

(インデックス0)期待[ERROR]式である '含みます'

Where句は、私が含んでいるメソッドを使用することができないため、これが必要です。ユーザーの行動に依存します。

答えて

0

だから、私はしばらくしてからこの答えを得た。そこでここに回答を投稿してください。

dataContext.Table.Where("new Int[]{1,2,3,4}.Contains(id)"); 

必要なデータ型を使用できます。私はリフレクションを使用してデータ型を見つけ出し、それに応じて使用します。

+0

これで間違った答え、クエリ、原因はいくつかの無効な引数 –

+0

そのダイナミックなLINQの男 –

+0

それはすでにそれを実行した作品を持って、このクエリを実行する方法。 –

0

のtryコード:

int[] ids= {1,2,3,4}; 

dataContext.Table.Where(c=>c.ids.Contains(t.id)).ToList(); 

それとも

var result= (from p in dataContext.Table.AsEnumerable() 
         join q in ids on p.id equals q 
         select p).Distinct() .ToList(); 
+0

ダイナミックなlinqの人、私はすでに答えを持っています –

+1

しかし、なぜあなたは動的LINQを使用していますか? – NetMage

+0

私はそれを使用する必要があります。すべての列とすべてのフィルタ条件は実行時に決定されます –

関連する問題