gpt4 book ai didi

c# - 在 Entity Framework 中按子项排序不返回排序列表

转载 作者:行者123 更新时间:2023-11-30 15:14:45 25 4
gpt4 key购买 nike

我知道 Entity 框架尚不支持子集合中的排序或筛选。我的想法是,首先获取数据,然后使用 foreach 循环对其进行排序。结果给了我一个未排序的列表。我的目标是获取 Participants(任意顺序)和 CurrentHospitaliztions(按 id 降序排列),它们是参与者的子项。模型和查询如下。我们将不胜感激。

public class Participant
{
public int Id { get; set; }
.. other fields

public ICollection<CurrentHospitalization> CurrentHospitalizations { get; set; }

public Participant()
{
CurrentHospitalizations = new Collection<CurrentHospitalization>();
}
}

public class CurrentHospitalization
{
public int Id { get; set; }
.. other fields

public Participant Participant { get; set; }
public int ParticipantId { get; set; }

}

我使用的查询:

public async Task<IEnumerable<Participant>> GetList()
{
var participants = await context.Participants
.Include(x => x.CurrentHospitalizations)
.ToListAsync();

foreach (var p in participants )
{
var s = p.CurrentHospitalizations;
foreach (var q in s)
{
s.OrderByDescending(u => u.Id);
}
}

return participants ;
}

最佳答案

您在错误的位置对正确的部分进行了排序,但实际上并没有对其进行任何操作。您不需要嵌套迭代,您可以像这样从单个 foreach 循环中执行它:

foreach (var p in participants) 
p.CurrentHospitalizations = p.CurrentHospitalizations.OrderByDescending( ch => ch.Id ).ToList();

关于c# - 在 Entity Framework 中按子项排序不返回排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53840509/

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