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

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 我在一行中添加了第二个解决方案,但我不确定哪个更好。 好吧,我对解决方案并不完全满意,但我会接受它,因为我没有其他选择。谢谢!

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

如何在实体框架模型中使用通用导航属性?

如何在引导程序 3 中包含字形图标 [重复]

如何快速比较核心数据中同一实体的两个属性值

如何修复实体框架中的“无法确定导航属性表示的关系”错误

如何使用代码优先实体框架在 ASP.Net MVC3 中重新加载多对多导航属性

实体框架Linq查询:如何在多个导航属性上从何处选择并从第三个导航属性中选择