2010-02-09 59 views
5

例如,我有一个客户列表,每个列表都有一个订单列表。现在,我想要列出所有未付订单的客户(假设这是状态2)。加上那个客户名单,我想要列出未付订单。Linq to Entities:将where条件添加到子关系

例如,我有这样的:

from c in mycontext.Customers.Include("Orders") 
select c 

在哪里,我怎么加入到寻找与状态== 2以及如何将这些订单的客户列表订单状况?

回答

3

否则

from c in mycontext.Customers.Include("Orders") 
where c.Orders.Any(order => order.status == 2) 
select c 

from c in mycontext.Customers.Include("Orders") 
let newObject = { 
    Customer = c, 
    NotPaidOrders = c.Orders.Where(order => order.status == 2).ToList() 
} 
where newObject.NotPaidOrders.Any() 
select newObject 
+0

在U任何人都已经把我放在了解决方案的正确轨道上,谢谢! – 2010-02-10 10:57:55

+0

不客气! – 2010-02-10 11:04:51

+0

请注意,如果您还需要满足条件的子实体,则不能使用“Any()”,因为如果Orders的任何一个有order.status == 2,那么所有的Orders将被选中。 对不起,如果我恢复了一个旧帖子,但我正在努力解决类似的问题,并认为这可能是解决方案,但没有为我工作。 – GigiSan 2016-01-26 14:05:30

2

试试这个:

from c in mycontext.Customers.Include("Orders") 
from order in c.Orders 
where order.status == 2 
select order 

或者为什么不能简单地这样做:

from order in mycontext.Orders 
where order.status == 2 
select order