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 子句。
有没有更简单的方法来编写查询?
以下将returnLineItems
按Order
分组
var liGroups = db.LineItems.Where(li => li.Price == 1.00).GroupBy(li => li.Order);
为了让我的描述简单明了,假设我有一个 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 子句。
有没有更简单的方法来编写查询?
以下将returnLineItems
按Order
var liGroups = db.LineItems.Where(li => li.Price == 1.00).GroupBy(li => li.Order);