实体框架加载具有排序顺序的子集合

2023-12-23

我有两张表,一张是父表,一张是子表。子表有一个列排序顺序(数值)。由于 EF 缺少支持在不公开排序顺序的情况下保留包含排序顺序的 IList(请参阅:实体框架持久保留子集合排序顺序 https://stackoverflow.com/q/4327281/775403)我的子类还有一个属性 SortOrder,以便我可以使用排序顺序存储子类。

与引用问题的作者相反,我尝试加载始终排序的子项。因此,如果我加载我期望的父实例,则子集合将按排序顺序排序。如何使用 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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架加载具有排序顺序的子集合 的相关文章

随机推荐

  • FxCop Phoenix 分析引擎出错

    因此 我尝试运行规则集中定义的一堆规则 RuleSet 文件实际上是使用 Sonarqube 生成的 我已经选择了其中的所有规则 包括 FxCop ReSharper 和 StyleCop 规则 我这样启动 FxCop C FxCop Fx
  • 如何防止春季日程重叠?

    Scheduled fixedDelay 5000 public void myJob Thread sleep 12000 如果上一个例程尚未完成 如何阻止此春季作业运行 默认情况下 spring使用单线程Executor 所以两个 Sc
  • C++ 中的 void 指针是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 什么是void指针 什么是空指针 https stackoverflow com questions 4334831 what is a void pointer and what is a null
  • “[本机代码]”是什么意思?

    我尝试研究 jQuery 代码 所以我使用了这个 document write constructor jsfiddle http jsfiddle net WZGWp 我得到这个结果 function Function native co
  • Pytest 和动态夹具模块

    我正在使用 pytest 为可以在本地和云中运行的软件编写功能测试 我想创建 2 个模块 每个模块具有相同的模块 夹具名称 并让 pytest 加载其中之一 具体取决于我是在本地还是在云中运行测试 fixtures fixtures ini
  • React-select isMulti 选择所有过滤选项

    我需要在多选中添加 全选 选项 如果至少有 1 个过滤选项 则应显示它 单击 全选 应该仅添加过滤后的选项 不一定是所有选项 到已选择的选项 Input is empty so all options are filtered 单击 全选
  • 如何在 EF Core 中插入外键影子属性?

    EF Core 允许我们省略外键属性 因为导航属性的存在足以建立两个实体之间的关系 然后 EF Core 将创建所谓的外键影子属性 https learn microsoft com en us ef core modeling shado
  • 使用ajax和codeigniter在引导模式中提交表单,无需更改页面

    我正在尝试使用 ajax 在引导模式中提交表单 而且我的表单提交成功 但是ajax内的success语句没有执行 该页面被重定向到一个空白页面 显示 msg ok 我正在粘贴控制器和视图中的代码 请帮忙 控制器 update profile
  • 正则表达式中 \b 和 \B 之间的区别

    我正在读一本关于正则表达式的书 我遇到了这个例子 b 猫把食物撒得满屋子都是 使用正则表达式 bcat b将匹配该词cat但不是cat in scattered For B作者使用了以下例子 请输入九位数的 ID 出现在您的彩色编码密码上
  • Python 3 - 无法使用 re 库进行打印

    我有这个代码 import requests from bs4 import BeautifulSoup import re url http www rockefeller edu research areas summary php i
  • Opengl Es如何用于gpgpu实现

    我想使用 Opengl Es 进行图像处理代码的 gpgpu 实现 我想知道我可以使用 Opengl Es 来实现此目的吗 如果可以的话 哪个版本的 Opengl Es 将更适合此目的 Opengl Es 1 1 或 2 0 OpenGL
  • 如何设置“内容编码”以启用 Webpack 服务器的 gzip 文件

    我使用创建了一个角度通用的应用程序Webpack服务器 我已经用过 压缩 webpack 插件 来压缩我的 js html 文件 以便我可以将它们从服务器提供给浏览器 压缩文件是通过该插件正确创建的 问题 虽然浏览器显示它可以接受 gzip
  • 盒子碰撞检测和弹跳

    我正在制作乒乓球 并且发现编写一个将球正确地从四堵墙上弹开的算法真的很困难 稍后我将处理得分问题 因为只有西边和东边的一部分会进球 所以现在我想让球在盒子周围弹跳 检测球是否撞到墙壁很容易 但我在计算新角度时遇到困难 这是我到目前为止所想出
  • tf.browser.fromPixels 仅返回零

    这里 tf browser fromPixels 返回一个只有零的张量 image data 包含预期值 不仅仅是零 tfjs 使用脚本标签加载 tfjs 1 0 0 但更改版本没有帮助 有什么问题吗 可能是一些愚蠢的事情 我是 Tenso
  • 如何在 NetBeans 的 Android 项目中使用外部 jar?

    我需要创建一个 Android 库 我可以将其作为 jar 包含在任何 Android 应用程序中 我使用 NetBeans 6 8 nbandroid 插件和 Android SDK 到目前为止我采取的步骤是 1 创建库项目 其中包含 a
  • 用于 mvc 的 html 编辑器的数据属性

    编辑器的数据属性不起作用 Html EditorFor model gt model SireTag new data typeahead dsfsdfsd 当我打开 Chrome 浏览器时 我看不到文本框的任何数据属性 我尝试凝视并没有发
  • 为什么我可以将并行流收集到任意大的数组,但不能收集顺序流?

    从回答这个问题 https stackoverflow com q 49760006 7294647 我遇到了一个奇怪的功能 以下代码按照我的预期工作 现有数组中的前两个值将被覆盖 Integer newArray Stream of 7
  • 我应该将 firebase api 密钥隐藏到后端吗?不是因为数据安全,而是项目克隆问题

    有人可以帮我解答 firebase 安全问题吗 这就是我试图弄清楚的 我知道要让客户端与我的 firebase 应用程序交互 需要配置和firebase initializeApp config 将公开 每个使用客户端的人都可以在浏览器开发
  • 在 JavaScript 中检查字符串相等性的正确方法是什么?

    在 JavaScript 中检查字符串之间是否相等的正确方法是什么 always 直到您完全理解使用的差异和含义 and 运营商 使用 运算符 因为它可以让您避免出现晦涩 不明显 的错误和WTF 常规 由于内部类型强制 运算符可能会产生非常
  • 实体框架加载具有排序顺序的子集合

    我有两张表 一张是父表 一张是子表 子表有一个列排序顺序 数值 由于 EF 缺少支持在不公开排序顺序的情况下保留包含排序顺序的 IList 请参阅 实体框架持久保留子集合排序顺序 https stackoverflow com q 4327