举个例子比如你要查询customers并只返回那些账户欠款超过30天, 并同时检索他们的订单.
而且你需要那些订单按照订单日期排序,因此你可以看到最近的一笔订单,这样你容易查找那些可以的订单.
你大概知道EF可以用Incude()载入一个关系,举个例子如下:
var lateCustomers = from c in ctx.Customers.Include("Orders")
where c.IsMoreThan30DaysInArrears
select c;
但不幸的是,这将返回每个客户的订单中随机顺序。
所以你怎么样呢?以及严格地说没有答案。
但是,你可以将订单排序包括在SELECT子句:
var lateCustomers = from c in ctx.Customers
where c.IsMoreThan30DaysInArrears
select new {
Customer = c,
Orders = c.Orders.OrderByDescending(
o => o.OrderDate
)
};