Entity Framework 对父对象和子对象应用过滤器

Entity Framework apply filter to parent and child object

为了让我的描述简单明了,假设我有一个 Order 对象,其中包含 LineItem 个对象的列表。

我需要应用一个非常复杂的过滤器来根据 LineItem 条件找到某些 Orders。简化示例:

var orders = db.Order.Where(o => o.LineItems.Any(li => li.Price == 1.00));

这会给我正确的 Orders,但是当我扩展 Order.LineItems 时,我得到了所有 LineItems,而不仅仅是被过滤的那些。

似乎我需要为我处理的每个 Order 再次应用过滤器到 Order.LineItems?正如我之前所说,选择标准可能非常复杂,有 30 个或更多 where 子句。

有没有更简单的方法来编写查询?

以下将returnLineItemsOrder

分组
var liGroups = db.LineItems.Where(li => li.Price == 1.00).GroupBy(li => li.Order);