实体框架将过滤器应用于父对象和子对象

时间:2015-03-31 22:12:07

标签: linq-to-entities

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

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

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

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

对于每个Order.LineItems I流程,我似乎需要再次将过滤器应用于Order?正如我之前所说,选择标准可能非常复杂,其中有30个或更多的where子句。

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

1 个答案:

答案 0 :(得分:1)

以下内容将返回按LineItems

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