私は注文テーブルを持っています。オーダーは複数のアイテムを含むことができ、各アイテムは異なる時間に出荷されます。 は、を部分的に出荷または発注していないすべてのオーダーのリストを取得したいと考えています。言い換えれば、私は完全に出荷されているすべての注文のリストを取得する必要があります。私はT-SQLでこれを行う方法を知っているかもしれません。しかし、私はLINQ-to-Entities(EF4/.Net 4.0/C#)でこれを達成しようとしています。LINQ to Entities - 私の例で部分的に出荷された注文を除外するWHERE句
には、以下のデータを検討してください。
PK OrderID Item Status
1 00001 TV Shipped
2 00001 TABLET Shipped
3 00002 BLURAYPL Not Shipped
4 00002 MOBILEPH Shipped
5 00002 XBOX Shipped
6 00003 PAPER Shipped
7 00003 PENCIL Shipped
目標は、出力として00001と00003を取得することです。ここで
は、私がこれまで持っているもので、明らかに簡略化:
using (MyDBEntities dbcontext = new MyDBEntities())
{
var WashingtonClients = from a in dbcontext.CustomerMasterTable
where a.City == "Washington"
select a.CustomerID;
var ShippedOrdersToWashingtonClients = from o in dbcontext.OrderDetail
where WashingtonClients.Contains(o.CustomerID)
&& o.Status.ToUpper() == "SHIPPED"
//how to exclude Partially Shipped orders here???
select o.OrderID;
}
それはそれで1つも未出荷のアイテムを持って注文を除外し、このような方法で、2番目のクエリをフレームにどのように?あなたのお時間をありがとうございました。
これは、クエリ構文では可能ですか? – FMFF
いいえ、「すべて」にはクエリアナログはありません。 – WarHog
非常に複雑なストアドプロシージャを作成することから私を救っただけです。どうもありがとうございました。 – FMFF