假设我有一个Customer
实体和一个{1}实体,具有1对多的关系。
我如何才能让所有客户拥有N个最近的销售额?
Sales
这将使所有客户获得所有销售。 如果我只想要每个客户的2个销售记录怎么办?
P / S:我可以用查询语法做到这一点,我正在寻找方法语法解决方案。我只是无法弄清楚如何将它们以方法语法形式链接在一起var result = Customers.Where(c => c.Sales.Any());
这样可行,但我不确定这是否是最好的方法。
编辑:
好吧,事实证明我在这里包含的查询语法也不起作用。
只有匿名类型中的var result = from cust in context.Customers
select new
{
Customers = cust,
Sales = cust.Sales.OrderBy(s => s.Date).Take(2)
};
才能有效地减少为2条记录。
Sales
执行此操作仍会导致客户列表中包含所有销售
答案 0 :(得分:1)
您可以按照here
中的说明执行项目var dbquery = Customers.Select( c => new {
Customer = c,
Sales = c.Sales.OrderBy(s => s.Date)
.Take(2).Select( s => new { s, s.SalesDetails})
});
var customers = dbquery
.AsEnumerable()
.Select(c => c.Customer);