2012-02-24 16 views
0

linq toエンティティクエリで結果とネスト結果を返そうとしています。linq toエンティティネストされた選択の塗りつぶし

Orders[] orderlist = 
(from m in db.Orders.Include("OrderLines") 
    where 
    areas.Contains(m.Area) 
    && m.Branch == branch 
    && (m.OrderStatus == "1" || m.OrderStatus == "4") 
    && m.SpecialInstrs == string.Empty 
    select m 
HOW??---> m.OrderLines = m.OrderLines.Where(p => (p.LineType == "1" || p.LineType == "7") && p.MBomFlag != "C").ToArray() 
).ToArray(); 

問題は、実際には特定の注文行だけが必要な場合、各注文のFK'd OrderLinesをすべて返すという問題です。

どうすればよいですか?

OrdersとOrderListは、L2Eとpocoエンティティジェネレータによって生成されたPOCOエンティティです。手動でそれらを結合することができ

+0

はあなたに対してチェックすることができNavigationPropertyとして受注エンティティに利用できる注文ラインはありませんか? – ShelbyZ

+0

ですが、私がここで求めている質問は、基本的に「インクルード」はすべての注文ラインをもたらします。 linetype == 1などの注文ラインだけが必要です。 – Allen

+0

これは理にかなっていると思います:[リンク](http://forums.silverlight.net/p/190229/438306.aspx)またはOrdersを取得するためのメソッドと、取得したOrdersに基づいてOrderLineを取得するメソッドの2つにメソッドを分割してみてください。 – ShelbyZ

答えて

0

Orders[] orderlist = (from m in db.Orders 
         join p in db.Orderlines 
         on p.OrderId = m.Id 
         where areas.Contains(m.Area) 
         && m.Branch == branch 
         && (m.OrderStatus == "1" || m.OrderStatus == "4") 
         && m.SpecialInstrs == string.Empty 
         && (p.LineType == "1" || p.LineType == "7") 
         && p.MBomFlag != "C" 
         select m).ToArray();