如何在 LINQ lambda 中订购父类的底层子集合

发布于 2024-10-28 05:59:30 字数 260 浏览 1 评论 0原文

例如:

_ctx.DataContext.Set<ParentClass>().Include("ChildCollection").OrderBy(...)

每次我在 OrderBy 子句中放置 Lambda 表达式时,我都无法访问我希望底层子集合排序所依据的 ChildCollection 属性的属性。我不希望父类按任何特定列排序。

如何使用 LINQ/Lambda 表达式实现此目的?看起来应该很简单!

For example:

_ctx.DataContext.Set<ParentClass>().Include("ChildCollection").OrderBy(...)

Everytime I put a Lambda expression in the OrderBy clause I can't get access to the properties off the ChildCollection property that I want the underlying child collection to be ordered by. I don't want the parent class ordered by any specific column.

How do I achieve this using LINQ/Lambda expression? Seems like it should be really easy!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

软甜啾 2024-11-04 05:59:30

预加载无法排序导航属性。你必须使用这样的东西:

var query = _ctx.DataContext
                .Set<ParentClass>()
                .Select(p => new 
                   {
                      Parent = p,
                      Childs = p.ChildCollection.OrderBy(c => c.Something)
                   });

Eager loading is not able to order navigation properties. You must use something like this:

var query = _ctx.DataContext
                .Set<ParentClass>()
                .Select(p => new 
                   {
                      Parent = p,
                      Childs = p.ChildCollection.OrderBy(c => c.Something)
                   });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文