gpt4 book ai didi

linq-to-entities - LINQ ".Include"子查询中的 orderby

转载 作者:行者123 更新时间:2023-12-04 08:30:44 25 4
gpt4 key购买 nike

我有以下实体代码,它返回所有用户并“包括”他们的所有示例请求:

    var userQuery = from u in _IntranetContext.UserSet.Include("SampleRequests")
orderby u.LastName ascending
select u;

每个用户都有多个 SampleRequests。每个 SampleRequest 都有一个 ID#(只是一个整数:1、22、341 等)。上面的 LINQ to entity 抓取用户和他们的 SampleRequests,如下所示:

用户 1:33、22、341、12

用户 2:24、3、981

如您所见,SampleRequest ID# 不是按升序排列的。我希望结果是有序的。

如何将 orderby 约束放在 Included SampleRequests ID#

请注意:SampleRequestId 是 SampleRequest 的属性...不是 User 对象的属性

最佳答案

我目前可以想到您想要的两种选择。您可以将它们选择到一个新类中,其中用户和关联的请求是属性:

var userQuery = from u in _IntranetContext.UserSet.Include("SampleRequests")
orderby u.LastName ascending
select new
{
User = u,
SampleRequests = u.SampleRequests.OrderByDescending(r => r.SampleRequestId)
};

如果您想返回此类型,这将导致问题,因为它是匿名的。

您还可以将其选择为新的用户对象,类似于:
var userQuery = from u in _IntranetContext.UserSet.Include("SampleRequests")
orderby u.LastName ascending
select new User
{
Property1 = u.Property1,
Property2 = u.Property2,
Property3 = u.Property3,
SampleRequests = u.SampleRequests.OrderByDescending(r => r.SampleRequestId).ToList()
};

这将返回用户对象的集合,但更新数据库中的对象可能会导致问题。

关于linq-to-entities - LINQ ".Include"子查询中的 orderby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1155757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com