gpt4 book ai didi

entity-framework - Entity Framework 按排序顺序加载子集合

转载 作者:行者123 更新时间:2023-12-03 08:46:01 25 4
gpt4 key购买 nike

我有两个表,一个父表和一个子表。子表有一个列 sortorder(一个数值)。由于 EF 缺少支持 IList 包含排序顺序而不暴露排序顺序(请参阅:Entity Framework persisting child collection sort order),我的子类也有一个属性 SortOrder,这样我就可以用排序顺序存储子类。

与引用问题的作者相反,我尝试加载总是排序的 child 。因此,如果我加载我期望的父实例,则子集合按排序顺序排序。如何使用 Code First Fluent API 和 POCO 实现这种行为?

提示:在子集合上调用 .Sort(...) 不是一个选项。

最佳答案

您无法直接实现它,因为 EF 中的预先加载或延迟加载都不支持排序或过滤。

您的选择是:

  • 从数据库加载数据后对应用程序中的数据进行排序
  • 执行单独的查询以加载子记录。使用单独的查询后,您可以使用 OrderBy

  • 第二个选项可以与显式加载一起使用:
    var parent = context.Parents.First(...);
    var entry = context.Entry(parent);
    entry.Collection(e => e.Children)
    .Query()
    .OrderBy(c => c.SortOrder)
    .Load();

    关于entity-framework - Entity Framework 按排序顺序加载子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9938956/

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