2009-07-01 14 views

答えて

4

ただ、通常の方法で注文の詳細条件を実行します。

from o in orders 
join od from orderdetails on o.id = od.orderid 
    into details 
where details.status == 'A' 
select new { Order = o, Details = details} 

(NB詳細は各マッチングの詳細レコードで、シーケンスであり、まず第FirstOrDefaultなどのLINQ演算子を使用することができます。 )。

を一つだけを抽出したり、データソース

from o in orders 
join od from orderdetails.Where(d => d.Status == 'A') on o.id = od.orderid 
    into details 
select new { Order = o, Details = details} 
として表現を使用します

あるいは、ソース式として別の理解の式を使用します(。Logプロパティを使用すると、SQLが実際に発生したものを比較することができますので、あなたがSQLを確認することができますDataContext君の設定)

from o in orders 
join od from (from d in orderdetails 
       where d.Status == 'A' 
       select d) 
    on o.id = od.orderid 
    into details 
select new { Order = o, Details = details} 

編集:グループ結合(... into var)を使用して、外部結合(内部結合ではなく)を取得するように変更します。

+0

+1 – Andomar

0

あなたはどこの機能でこれを試みることができる:3つの選択肢のために

from o in orders 
join od in ordersdetail.Where(x => x.status == 'A') on o.id = od.orderid 
select new { Order = o, Details = od} 
関連する問題