限制实体框架中子实体的数量

2024-05-18

底线在前

有没有一种简洁的方法可以限制可以属于实体框架中父级的子实体的数量。我现在使用的是4.3.1。

问题

我正在开发一个 ASP.NET MVC3 站点,它通过使用实体框架的数据访问层访问数据。我有一个 SearchList 实体,它与搜索实体具有多对多关系。一个SearchList可以有多个Search,一个Search也可以属于多个SearchList。

在网站工作流程的某一时刻,用户需要选择要在批量搜索中使用的搜索和其他项目。我们希望页面加载整个搜索列表。

搜索列表可能会变得非常大,作为测试,我们创建了一个包含 21,000 次搜索的列表。花了几秒钟,返回的数据约为 9.5 MB,这是我们所期望的,但 jQueryUI 在尝试表化这么多数据时感到窒息。

我们想要什么

因此,我们希望对任何搜索列表可以进行的搜索数量施加限制。我可以浏览该应用程序并放入一堆规则来检查集合的大小以及尝试添加的搜索是否加上当前的大小... yada yada yada。

然而,如果有更好的方法(尤其是可以轻松输出 MVC 会接收到的错误消息的方法),我完全会采用这种方法。

我用谷歌搜索,并仔细阅读了一些 EF 博客,但无济于事。约束集合中的子级和最大子级数,类似的搜索已返回有关 Linq 查询以及 Count 和 Max 方法的结果。

任何帮助,将不胜感激。


没有内置的方法,因此您必须自己编写此类验证代码。一些快速的想法:

  • 例如,您可以使用导航属性的自定义集合,当您尝试添加超过阈值的其他搜索时,该属性将引发异常。它很简单,但它要求您加载所有搜索,它会存在并发问题,而且它可能会在加载搜索列表和从数据库搜索时触发。
  • 您可以在重写中处理它SaveChanges。您至少必须检查有多少搜索已经与搜索列表相关,但您仍然会遇到并发问题(如果其他请求尝试将搜索添加到同一列表但只剩下一个位置该怎么办 - 两者都可以成功检查并插入相关搜索)
  • 您可以在数据库触发器中处理它 - 再次它会出现并发问题

完全避免并发问题需要带有锁定提示的手写查询,以确保只有一个请求可以检查每个搜索列表的搜索数量并在原子事务中插入新的搜索。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

限制实体框架中子实体的数量 的相关文章

随机推荐

  • docker 容器无法启动,因为现有的 pid 文件

    当我启动 docker 容器时 它会失败 因为现有的 pid 文件 root newhope sergio docker logs sharp shockley httpd pid 1 already running httpd pid 1
  • 使用 rollup.js 创建 React 库时出现错误 null(读取“useState”)

    我正在使用 rollup js 创建一个反应库 但是当我运行时npm run build我收到一个错误 仿佛useState尝试从中检索钩子null Uncaught TypeError Cannot read properties of
  • JavaScript 错误处理的最佳实践是什么?

    我希望开始让我的 JavaScript 更加防错 并且我找到了大量有关使用的文档try catch finally and throw 但我没有从专家那里找到大量关于何时何地抛出错误的建议 每段代码都应该包含在 try catch 中吗 还
  • ViewModel 中的 TextBox CaretIndex 属性

    是否可以通过视图中定义的 Binding 获取 设置 wpf 视图模型中 TextBox 控件的 CaretIndex 属性的值 Thanks 这里的问题是如何获得CaretIndex of the TextBox通过视图模型进行控制 如果
  • chrome扩展中的js代码可以检测到它是作为内容脚本执行的吗?

    我有一个谷歌浏览器扩展 它在内容脚本和后台进程 弹出窗口之间共享一些代码 这段代码是否有一些简单直接的方法来检查它是否作为内容脚本执行 消息传递行为不同 我可以在清单中包含额外的 标记 javascript 或者调用内容脚本中不可用的某些
  • 在java中使用BUBBLE SORT对二维字符串数组进行排序

    类似的问题已经被问过 但从来没有关于二维字符串数组 因此在尝试了很长时间之后我找不到我想要的 我正在尝试使用 BubbleSort 对 java 中的 2D 字符串数组进行排序 作为输入 我收到一个二维字符串数组 一个表 以及您应该排序的
  • 一段 R 代码会影响 foreach 输出中的随机数吗?

    我使用运行模拟foreach and doParallel并与随机数 名为random在代码中 简而言之 我模拟一个足球联赛 随机生成所有比赛的获胜者以及相应的结果 在dt base没有比赛进行 在dt ex1 and dt ex24场比赛
  • 如何限制使用 Spring-Boot 和 OAuth2 登录特定域

    我已经使用 Spring Boot 和 Google 成功完成了 OAuth2 登录 但我想将登录限制到特定域 我们正在使用 Google Apps for Work 我认为我应该通过扩展类 OAuth2ClientAuthenticati
  • Javascript 使事件点击和语音识别与多个按钮一起工作

    所以我正在使用 webkitSpeechRecognition 并且它工作得很好 但问题是我想同时在多个地方使用它 当我将它添加到页面上的另一个部分时 它无法正常工作 这是它自己工作的情况 var final transcript var
  • Haskell 标准库是什么?

    GHC专用库可以称为标准库吗 或者只有 Haskell 2010 报告中的那些才算数 许多 GHC 库可以通过 Haskell 报告中的函数来实现 可能与 C 绑定相结合 但其他语言依赖于 GHC 特定的扩展 因为语言报告中定义的当前 Ha
  • 以 O(1) 计算汉明权重 [重复]

    这个问题在这里已经有答案了 在二进制表示中 汉明权重是 1 的数量 我偶然发现了网络并找到了一个 O 1 的答案 v v v gt gt 1 0x55555555 v v 0x33333333 v gt gt 2 0x33333333 in
  • 使用艺术家动画每秒拍摄快照

    我使用这个功能 def Plot data plt colormaps n sc shape data 2 ims for i in range n mydata data i im plt imshow mydata cmap plt g
  • React Native glog iOS:未知类型名称“_START_GOOGLE_NAMESPACE_”

    我已经构建了一个 React Native 的 Android 项目 它运行良好 然后我开始了 iOS 部分 我正在使用react native cli 2 0 1react native 0 60 4和Xcode 10和Mac OS Mo
  • 检查 JavaScript 文件是否已加载

    首先 这不是这个的重复question https stackoverflow com questions 4036203 check if javascript file was loaded 您很快就会明白原因 我有一个文件想要在我的H
  • 获取函数的命名空间

    我正在开发一个包 我希望在其中向对象添加编辑历史记录 该包允许其他包注册用于编辑对象的函数 我正在寻找一种方法来记录注册用于编辑的函数的包的版本 问题是 给定一个函数 如何从导出的位置获取包 我的想法是调查它的搜索路径 但是search 仅
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • 使用 MacPorts 在 Mac OS X 10.5 上安装 PostgreSQL 时出错

    我已经使用 MacPorts 在几台不同的计算机上安装了 PostgreSQL 没有问题 但是当涉及到我自己的笔记本电脑时 我无法构建它 当我执行此命令时 sudo port install postgresql83 我收到此错误 chec
  • Internet Explorer 中的锯齿状按钮边缘

    如何去除 Internet Explorer 中宽按钮的锯齿状边缘 例如 您还可以通过设置来消除 Windows XP 的按钮样式 以及 Windows 的所有其他版本 background color and or border colo
  • 自定义 UITableViewCell 选择样式?

    当我点击我的UITableViewCell 当我单击单元格时 背景部分 我的背景图像未覆盖的区域 会变成蓝色 另外 所有的UILabel单击时单元格上的 s 变为白色 这就是我想要的 然而 我不想要的是当我点击它时的蓝色背景 但如果我这样做
  • 限制实体框架中子实体的数量

    底线在前 有没有一种简洁的方法可以限制可以属于实体框架中父级的子实体的数量 我现在使用的是4 3 1 问题 我正在开发一个 ASP NET MVC3 站点 它通过使用实体框架的数据访问层访问数据 我有一个 SearchList 实体 它与搜