如何对EF返回的实体中的内部列表进行排序
本文关键字:内部 列表 排序 实体 EF 返回 | 更新日期: 2023-09-27 18:11:34
如何对EF在一个查询中返回的实体的内部集合进行排序?
public abstract class BatchOrder
{
//..
public virtual ICollection<Order> Orders { get; set; }
//..
}
我可以这样做:
var orders = DataContext.Orders
.Where(o => o.BatchOrderId == batchOrderId)
.OrderBy(o => o.SequenceNo)
.ToList();
var bmo = DataContext.BatchOrders
.Include("Track")
.Include("Customer")
.OfType<BatchMoneyOrder>()
.AsExpandable()
.Where(o => o.Id == batchOrderId)
.FirstOrDefault();
bmo.Orders = orders;
,但这不是一个有效的方法。我也检查了这个解决方案,但它不工作。
现在,EF不支持在Include语句中执行任何逻辑。希望将来我们能获得这个功能,尽管它不会对性能产生太大的影响,因为在SQL中没有办法在一个查询中返回多个结果集。
你的解决方案是最有效的,因为你可以控制延迟/急切加载。另一种设置是将Orders集合设置为已排序的集合,因此在客户端而不是SQL中进行排序。