假设我有一个Customer
实体和一个Sales
实体,是一对多的关系。我怎样才能获得最近销售 N 次的所有客户?
var result = Customers.Where(c => c.Sales.Any());
这将返回所有客户的所有销售额。如果我只想从每个客户那里获得 2 条销售记录怎么办?
P/S:我可以用查询语法来做到这一点,我正在寻找方法语法解决方案。我只是不知道如何以方法语法形式将它们链接在一起
var result = from cust in context.Customers
select new
{
Customers = cust,
Sales = cust.Sales.OrderBy(s => s.Date).Take(2)
};
这可行,但我不确定这是否是最好的方法。
编辑:好的,事实证明我在这里包含的查询语法也不起作用。只有Sales
匿名类型中的 有效减少到 2 条记录。
var filtered = result.AsEnumerable().Select(r => r.Customers);
这样做仍然会产生一个包含所有销售额的客户列表