2017-09-06 18 views
1

配信されたイベントタイプを持たないオーダーを除外しようとしています。その後ラムダ式を使用してEXIST句とNOT EXIST句を使用する方法

List<Order> matchingOrders = xyzContext.Orders.Where(
        o => o.FacilityId == facility.MasterFacilityId 
        && rxNumberList.Contains(o.RxNumber) 
        && o.OrderEvents.All(oe => oe.EventType.Code != EventTypeCode.Delivered)).ToList(); 

私は、イベントタイプ「順序」があり、イベントの種類が「配信」がないと私は期待どおりの結果を得ていないのです注文をフィルタ処理しようとしています。

List<Order> matchingOrders = xyzContext.Orders.Where(
        o => o.FacilityId == facility.MasterFacilityId 
        && rxNumberList.Contains(o.RxNumber) 
        && o.OrderEvents.All(oe => oe.EventType.Code != EventTypeCode.Delivered && oe.EventType.Code == EventTypeCode.Ordered)).ToList(); 
+0

をこのコードが書かれたように動作するはずです。おそらくコード値の管理方法に根本的な問題があります。 –

+0

代わりに何を得ますか?さらに: 'EventTypeCode'とは何ですか?それはビット単位で結合された列挙型ですか、それとも単一の列挙型の値だけを含んでいますか? – HimBromBeere

+0

@HimBromBeere EventTypeCodeは、多くのイベントタイプのコードと説明を含むenumです。 – alkprksh

答えて

0

これを試してみる:

List<Order> matchingOrders = xyzContext.Orders.Where(
       o => o.FacilityId == facility.MasterFacilityId 
       && rxNumberList.Contains(o.RxNumber) 
       && o.OrderEvents.All(oe => oe.EventType.Code != EventTypeCode.Delivered) 
       && o.OrderEvents.Any(oe.EventType.Code == EventTypeCode.Ordered)).ToList(); 
関連する問題