为了保持我的描述简单,我们假设我有一个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子句。
是否有更简单的方法来编写查询?
答案 0 :(得分:1)
以下内容将返回按LineItems
Order
var liGroups = db.LineItems.Where(li => li.Price == 1.00).GroupBy(li => li.Order);