2

私のDBには、たとえば13の注文があります。

以下のコードは、OrderID = 0およびの場合、それらすべてを返しますCustomerName = "lorem"

行にコメントすると、正常に(OrderID == 0) ?....動作します。どうしたの ?

var result = (from x in db.Order
              where
                  (OrderID == 0) ? x.OrderID > 0 : x.OrderID == OrderID
                  &&
                  (string.IsNullOrEmpty(CustomerName)) ? 
                                            !string.IsNullOrEmpty(CustomerName)
                                            :
                                            x.User.Name.Contains(CustomerName)
              select x)
              .ToList();
4

1 に答える 1

3

このようにLINQクエリ内で条件条件を定義することはできないと思います。できることは、たとえば次のとおりです。

var result = (from x in db.Order where
              ((OrderID == 0 && x.OrderID > 0) ||  
                (OrderID != 0 && x.OrderID == OrderID))
                  &&
                  (string.IsNullOrEmpty(CustomerName)) ? 
                                            !string.IsNullOrEmpty(CustomerName)
                                            :
                                            x.User.Name.Contains(CustomerName)....
于 2012-04-21T07:54:13.410 に答える