Linq to Entities:为子关系添加where条件

Ger*_*nck 5 .net c# linq linq-to-entities

例如,我有一个客户列表,每个客户都有一个订单列表.现在,我希望获得所有未付订单的客户列表(假设这是状态2).与该客户列表一起,我还希望获得未付订单列表.

例如我有这个:

from c in mycontext.Customers.Include("Orders")
select c
Run Code Online (Sandbox Code Playgroud)

我在何处或如何添加条件以查找状态为== 2的订单以及如何将这些订单包含在客户列表中?

小智 3

否则

from c in mycontext.Customers.Include("Orders")
where c.Orders.Any(order => order.status == 2)
select c
Run Code Online (Sandbox Code Playgroud)

或者

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
Run Code Online (Sandbox Code Playgroud)