2012-02-24 2 views
0

Я пытаюсь вернуть результат и вложенный результат в запрос linq к объектам.linq для сущностей вложенных select fillout

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(); 

Проблема заключается в том, что включает в себя возвращают все OrderLines FK'd для каждого заказа, когда я действительно хочу только определенные строки заказа.

Как это сделать?

Приказы и список заказов являются объектами POCO, сгенерированными L2E и генератором объектов poco.

+0

ли OrderLines не доступны на предприятие Заказы в качестве NavigationProperty, что вы могли бы проверку против? – ShelbyZ

+0

это, но вопрос, который я задаю здесь, в основном включает «включить», приводит все строки заказа. Мне нужны только строки заказов, которые имеют тип линии == 1 и т. Д. – Allen

+0

Вы можете подумать о том, чтобы дать этому возможность, если это имеет смысл: [link] (http://forums.silverlight.net/p/190229/438306.aspx) или попробуйте разделить вызов на два метода: один для получения ордеров и один для получения ваших OrderLines на основе полученных заказов. – 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(); 
Смежные вопросы