如何在实体框架中包含排序的导航属性[重复]

Posted

技术标签:

【中文标题】如何在实体框架中包含排序的导航属性[重复]【英文标题】:How to include sorted navigation properties with Entity Framework [duplicate] 【发布时间】:2012-10-25 09:30:20 【问题描述】:

我有一个实体A,里面有B 的集合。我用_entity.A.Include(a => a.B) 加载它们

现在我想将 B 放入 A 中,按自定义 OrderBy 排序。我试过_entity.A.Include(a => a.B.OrderBy(o => o.Version),但我得到了一个:

包含路径表达式必须引用在类型上定义的导航属性。对引用导航属性使用虚线路径,对集合导航属性使用 Select 运算符。

关于如何实现这一点的任何想法?

谢谢。

版本是一个整数。

【问题讨论】:

你能贴出你的OrderBy的正文吗? 【参考方案1】:

我认为在这种情况下你可以尝试:

var list = _entity.A.Include("B").ToList();
list.ForEach(m => m.B = m.B.OrderBy(o => o.Version));

或:

_entity.A.Include("B").Select(m => new A 
        //some props,
        B = m.B.OrderBy(o => o.Version)
        );

【讨论】:

同意,但是这可以通过一个查询来完成,以避免将集合循环两次吗? @SoMoS 我在一行中添加了第二个解决方案,但我不确定哪个更好。 好吧,我对解决方案并不完全满意,但我会接受它,因为我没有其他选择。谢谢!

以上是关于如何在实体框架中包含排序的导航属性[重复]的主要内容,如果未能解决你的问题,请参考以下文章