2012-02-29 17 views
0

これらの条件でlinqクエリを書くにはどうすればいいですか?これが真であれば条件をチェックしなければなりません。条件をチェックする必要があります。 .OrderType.XYZ)それは「ZJ」は、我々はエラーなしという取り除く現在context..ifに属していないが、我々はREQ結果に複数の条件を持つLinqクエリ

bool btnvisible= datacontext.GetOrders(new List<Items> { selectedItem }). 
    .Where((zj => wo.OrderId== (int)BL.OrderType.PQR || zj.OrderId== (int)BL.OrderType.XYZ) 
      &&(zj.OrderId== (int)BL.Statuses.Assigned 
      || zj.OrderId== (int)BL.Statuses.Planned 
      || zj.OrderId== (int)BL.Statuses.InProgess 
      || zj.OrderId== (int)BL.Statuses.Paused 
      || zj.OrderId== (int)BL.Statuses.Ready)).Any(); 
return btnEnable; 
+0

あなたは「まず、これが真であればOrderTypeをチェックし、条件をチェックする必要があります。あなたの例では明らかにenumを使用しています。 – Brian

答えて

2

を得ていないR iは、これはいくつかの見当違いによるものだと思うと言います角かっこ。あなたは.Where((zj => ...) ... zj ...)です。変数zjは、最初の括弧の外側には存在しません。私は、問題はここにあると思い

bool btnvisible= datacontext.GetOrders(new List<Items> { selectedItem }) 
    .Where(zj => (wo.OrderId== (int)BL.OrderType.PQR || zj.OrderId== (int)BL.OrderType.XYZ) 
      && (zj.OrderId== (int)BL.Statuses.Assigned 
      || zj.OrderId== (int)BL.Statuses.Planned 
      || zj.OrderId== (int)BL.Statuses.InProgess 
      || zj.OrderId== (int)BL.Statuses.Paused 
      || zj.OrderId== (int)BL.Statuses.Ready)).Any(); 
return btnEnable; 
2
var readyStats = new [] { 
    (int)BL.Statuses.Assigned, 
    (int)BL.Statuses.Planned, 
    (int)BL.Statuses.InProgess, 
    (int)BL.Statuses.Paused, 
    (int)BL.Statuses.Ready, 
}; 

var orderTypes = new [] { 
    (int)BL.OrderType.PQR, 
    (int)BL.OrderType.XYZ 
} 

bool btnvisible= datacontext.GetOrders(new List<Items> { selectedItem }). 
    .Where(wo => orderTypes.Contains(wo.OrderId) && readyStats.Contains(wo.OrderId)).Any(); 

または

bool btnvisible= datacontext.GetOrders(new List<Items> { selectedItem }). 
     .Any(wo => orderTypes.Contains(wo.OrderId) && readyStats.Contains(wo.OrderId)); 

:それはのようなものでなければなりません

.Where((zj => wo. 

右バージョン笙uld:

.Where(zj => zj. 
+0

もっと読むことができる回答 –

+1

ありがとうアドリアン..これは本当に役に立ちます – GANI

2

括弧が一致していないようです。

.Where((zj => wo.OrderId== (int)BL.OrderType.PQR || zj.OrderId== (int)BL.OrderType.XYZ) 
    ^                   ^

これは、変数の範囲に悩まされています。それを再訪する。

関連する問題