2016-05-19 11 views
0

私は以下のようなLINQ文を持っている:ビルドLINQクエリを動的

var biosample= (from a in db.Biosample 
       select a); 

if (catalognbr != -1) 
{ 
    biosample.Where (a => a.Catalog_nbr ==catalognbr); 
} 

ユーザーが選択したcatalognbr場合、クエリは、WHERE条件を連結、それ以外の場合は、場所をスキップします。今は私が望むように動作しません。それを動作させるには?

ありがとうございました。

答えて

1

あなたはまた戻って生体試料に

var biosample= (from a in db.Biosample 
       select a); 
if (catalognbr != -1) 
{ 
    biosample = biosample.Where (a => a.Catalog_nbr ==catalognbr); 
}     
+0

ありがとうございますが、catalognbr == - 1の場合、クエリはallを返す必要があります。そして、どのように複数のwhere句を行うなど、キャンパス==キャンパスなどを追加する – user788448

+0

2番目の部分が動作します。ありがとう。 – user788448

0

あなたのコード内でこのような書き込みを結果を割り当てることで、あなたの最初の試みの作品を作ることができ、クエリで

var biosample= (from a in db.Biosample 
      select a) 
      .Where (a => catalognbr == -1 || a.Catalog_nbr ==catalognbr); 

をcatalognbrための小切手を組み込むことができます。

biosample = biosample.Where (a => a.Catalog_nbr ==catalognbr);