假设我有以下“Foo”和“Bar”实体:
class Foo {
int FooId;
string FooName;
}
class Bar {
int BarId;
Foo RelatedFoo;
string BarName;
}
我们还假设我希望“RelatedFoo”默认是延迟加载的。
在Entity Framework中,是否可以执行一个返回可枚举“Bar”实体的查询,其中元素按“bar.RelatedFoo.FooName”排序?
如果是这样,可以在固定数量的数据库查询中完成吗?我想避免做N+1 queries。
如果没有,这可能在另一个.NET ORM框架中吗?
答案 0 :(得分:1)
var bars = _context.Bars.OrderBy(b => b.RealtedFoo.FooName)
您可能还希望仅返回RealtedFoo
不为空的栏
var bars = _context.Bars.Where(b => b.RelatedFoo != null).OrderBy(b => b.RealtedFoo.FooName)
<强>更新强>
//For EF only
_context.Configuration.LazyLoadingEnabled = false
//If you want to bring back RealtedFoo then include it.
//Otherwise, you can just query for it and not use the Include() extension.
var bars = _context.Bars.Include(b => b.RealtedFoo).Where(b => b.RelatedFoo != null).OrderBy(b => b.RealtedFoo.FooName)