2

Where句で条件を使用するにはどうすればよいですか?

ユーザーは、リストからセクション、製品、およびモデルを選択して、結果を確認できます。すべてのフィールドに項目See Allを追加し、ユーザーが選択した場合See All、すべてのセクションですべての製品を表示できます。そのため、すべてのプロパティが -1 ドットに等しい場合に値をチェックするクエリを作成し、where 条件を指定します。

//My Model
struct Model
{
public int SectionCode{get;set;}
public int ProductCode{get;set;}
public int ModelCode{get;set;}
}

var query=DBContext.Model.Where(data=>data.ModelCode==_ModelCode//if ModelCode!=-1 
&& ProductCode==_ProductCode//if ProductCode!=-1  
&& SectionCode==_SectionCode//if SectionCode!=-1 ) 

私はいくつかでそれを書くことができることを知っていますifが、多くの条件をチェックする必要があります.だから知りたいのですが、どのように書くことができますか?

4

3 に答える 3

9

必要がない場合は、where 句を追加しないでください。つまり、次のようになります。

IQueryable<Model> query = DBContext.Model;

if(_ModelCode != -1)
{
    query = query.Where(data=>data.ModelCode==_ModelCode);
} 

if(_ProductCode!= -1)
{
    query = query.Where(data=>data.ProductCode==_ProductCode);
} 

if(_SectionCode!= -1)
{
    query = query.Where(data=>data.SectionCode==_SectionCode);
} 
于 2013-10-27T15:15:53.883 に答える
4

これは、論理演算子を使用して実現できます。

var query = DBContext.Model.Where(data =>
    (_ModelCode   == -1 || data.ModelCode == _ModelCode)
 && (_ProductCode == -1 || data.ProductCode == _ProductCode)
 && (_SectionCode == -1 || data.SectionCode == _SectionCode))
于 2013-10-27T15:13:25.973 に答える
4

これを試して :

var query=DBContext.Model.Where(data => (ModelCode == -1 || data.ModelCode == _ModelCode) 
&& (ProductCode == -1 || ProductCode == _ProductCode)
&& (SectionCode == -1 || SectionCode == _SectionCode) 
于 2013-10-27T15:13:13.487 に答える