实体框架 4 - 处理非常大(1000+表)的数据模型?

2024-01-03

我们有一个包含超过 1000 个表的数据库,并希望考虑使用 EF4 作为我们的数据访问层,但我担心将其用于如此大的数据模型的实际情况。我见过这个问题 https://stackoverflow.com/questions/1519643/how-to-support-multiple-entity-framework-models-in-the-same-solution并阅读建议的解决方案here https://learn.microsoft.com/en-us/archive/blogs/adonet/working-with-large-models-in-entity-framework-part-1 and here https://learn.microsoft.com/en-us/archive/blogs/adonet/working-with-large-models-in-entity-framework-part-2。这些可能有效,但似乎引用了实体框架的第一个版本(并且比我想要的更复杂)。有谁知道这些解决方案是否在 EF4 中得到了改进?或者还有其他建议吗?谢谢。

更新:在多次尝试使 EF 正常工作之后,我决定在这个项目中完全放弃它。大数据模型支持还不存在,虽然可能有解决方法(例如独立于设计者编辑和维护 xml),但他们只是觉得还没有准备好迎接黄金时间。对我来说最大的问题是,如果没有大量冗余和重复的代码,EF 不能很好地处理跨多个 XML 文件的域模型。我仍然愿意接受建议(我知道我还没有剥掉 EF 洋葱的所有层),但现在,我将继续不使用 EF。

更新#2:看起来待处理的代码首先支持(目前在EF4 CTP4 https://web.archive.org/web/20160703021543/http://blogs.msdn.com:80/b/adonet/archive/2010/07/14/ctp4codefirstwalkthrough.aspx)很可能最终成为我们想要的解决方案,因为它使设计器和大型 XML 文件维护不再发挥作用。


我在 Microsoft 截屏视频中听到的数字是每个 EF 模型最多大约 250 个表。这并不意味着 EF 无法处理更多数据 - 将 1000 多个表分成几个逻辑表组,并为每个逻辑组使用一个 EF 模型(其中最多包含 250 个表)可能是明智的做法。

我非常怀疑您是否会遇到需要同时使用所有 1000 个表的查询 - 很可能一次甚至不会使用 10 个表。因此,您绝对应该能够将相当大的模型拆分为较小的集群,并将每个集群转换为单独的 EF 模型。

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

实体框架 4 - 处理非常大(1000+表)的数据模型? 的相关文章

  • CryptoLicensing 的体验是好是坏? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我计划购买 CryptoLicensing 但在购买之前 如果有人尝试过 我想得到一些反馈 如果有人破解它或发现一个容易破解反对 我见过一些关于
  • 如何简单地添加指向 Spring Data REST 实体的链接

    我有带有 Spring Data JPA 的实体 但为了生成有关它们的统计信息 我在 Spring 中使用 jOOQ Repository 由于我的方法返回一个List的实体 或Double 我如何将它们公开为链接 假设我有一个User实体
  • Breezejs 加载具有相关数据的实体时出错

    毫无疑问 我在这里遗漏了一些明显的东西 所以也许互联网的集体力量可以向我指出这一点 我有一个代码优先的数据库结构 由用户 组和一个链接两者的 GroupUsers 表组成 EF 本身可以处理 n n 关系 但 Breezejs 需要显式地使
  • WPF - 防止用户操作在应用程序繁忙时排队

    当应用程序繁忙时 意味着 UI 线程被阻止执行某些操作 您建议采用什么方法来忽略用户请求 例如鼠标单击 具体的例子可能是网格控件的排序 如果我们说排序很慢 那么在操作运行时 我想忽略额外的用户点击 这些点击会堆积并多次执行操作 除了诉诸禁用
  • LINQ to Entities 使用表达式参数选择列

    我无法理解如何通过指定表达式作为参数来设法在可查询中选择列 Method A IQueryable
  • 将数据表传递给 IronPython

    我有一个 NET 项目 我在其中使用 IronPython 来执行一些数据处理 目前 C 代码循环遍历并为需要动态计算的每一行和每一列生成一个IronPython脚本 但是 我想通过传入 DataTable 对象和针对它执行的脚本来提高该过
  • 如何找到锁的所有者(监视器)?

    有没有办法发现哪个线程当前拥有锁 具体来说 我正在寻找一些代码来打印出阻止锁定的线程 我想尝试锁定给定的超时时间 然后报告哪个线程正在阻止锁定 不需要 只需编写代码 private int lockOwner private object
  • 如何在 wpf C# 中播放双音频电影

    基本的 WPF 媒体元素仅播放 MKV 文件 但不查找和提供更改音频的设施 是否可以在 Media element 中播放此类视频 我在 stackoverflow 上搜索了很多问题 例如扩展媒体元素功能等或使用第三方组件 但没有找到任何合
  • WPF DataGrid 验证错误?

    这可能是预期的功能 但对我来说它确实像是一个错误 我正在使用开箱即用的 WPF DataGrid 绑定到 ObservableCollection 和尝试使用一些验证规则来提供良好的用户反馈 不用说 问题多得我数不过来 但我会坚持眼前的问题
  • 使用 linq-to-entities 将字符串转换为日期时间的大问题

    如何使用 linq toEntity 将字符串转换为日期时间 我收到以下查询 其中visit date列数据类型是字符串 var memberl from v in abc visits join m in abc members on v
  • .NET Winform 键盘控件

    有没有winform键盘控件 我正在寻找一个可以拖放的控件 这是针对具有触摸屏功能的仓库应用程序 如餐厅应用程序中的应用程序 这是一篇 CodeProject 文章 详细介绍了如何创建触摸屏键盘 触摸屏键盘 http www codepro
  • 具有多个键的 ToLookup

    有没有办法需要多个密钥 ToLookupLINQ提供的功能 我承认这一开始似乎不直观 我希望没有实际的方法可以做到这一点 但我希望有人知道一种方法 我基本上希望能够通过两个值进行查找 例如string and an int 并检索具有这两个
  • 实体框架以错误的顺序插入子对象

    Question 为什么 EF 首先在它所依赖的对象 TimesheetActivity 之前插入具有依赖项的子对象 PersonnelWorkRecord 另外我有哪些纠正这个问题的选择 ERD 简化 This is predefined
  • 尝试创建 ssms 加载项时出现问题

    我正在尝试为 SSMS 2008 和 或 2008 R2 创建加载项 但我立即遇到了问题 我可以让我的加载项正常工作 并在 SSMS 启动时让它仅显示一个消息框 但是 下载各种代码示例后 当尝试引用 Microsoft SqlServer
  • 为什么选项卡页正文不使用 .NET 选项卡控件进行更新?

    我在使用 C Visual Studio 2010 中的 NET TabControl 时遇到一个奇怪的问题 启动 Windows 窗体应用程序 添加一个选项卡控件和一个按钮 向两个选项卡页添加两个不同的标签 以便您可以区分它们 该按钮的作
  • System.Drawing.dll / NumericUpDown 的 .NET 访问冲突异常

    我遇到了一个非常愚蠢的问题 我已经尝试完全重新安装 NET 但它没有解决问题 我什至无法通过谷歌搜索找到其他有同样问题的人 就在我的计算机上 如果我将 NumericUpDown 控件添加到 NET 项目中的窗体并运行该应用程序 则在运行该
  • 为什么单击 ToolStrip 按钮两次时会引发 NullReferenceException - openFileDialog.showDialog()?

    我创建了一个干净的 Windows 窗体应用程序解决方案 添加了ToolStrip到主窗体 并在其上放置一个按钮 我还添加了一个OpenFileDialog 所以这样Click event of the ToolStripButton看起来
  • WebProxy 错误:需要代理身份验证

    我使用以下代码从互联网获取html数据 WebProxy p new WebProxy localproxyIP 8080 true p Credentials new NetworkCredential domain user passw
  • WCF Xml 与二进制序列化的优缺点

    我知道如果我将二进制序列化与 WCF 一起使用 我就会失去互操作性 如果我愿意接受这一点 我想知道使用二进制比 Xml 是否有效率优势 如果还有我上面没有提到的其他优点和缺点 是的 可能是一个大事件 XML 序列化数据比二进制数据要大 使用
  • 如何检查应用程序的 .NET 版本?

    除了在仅具有 NET Framework 版本 3 5 的计算机上运行之外 如何检查 NET 应用程序的版本 NET 框架版本控制在 NET 2 0 之后变为 foobar 一个应用程序的目标是CLR版本 它使用 EXE 的程序集元数据来实

随机推荐

  • 在C中逐行读取文件

    Preface 这道题是关于逐行读取文件 并将每一行插入到一个链表中 我已经编写了链表的实现 并测试了insert 手动功能 这有效 我还编写了从文件中读取文本并将其写出的代码 同样 这也有效 好的 这是我的问题 我怎样才能合并这些概念 以
  • Dart:将十进制转换为十六进制

    我一直在寻找一种在 Dart 编程语言中将十进制数转换为十六进制格式的方法 The hex encode方法中的HexCodec例如 类无法转换十进制 1111 其十六进制值为 457 而是给出异常 FormatException 无效字节
  • 我应该在函数中抛出 IllegalArgumentException 吗?

    我正在构建一个包含大量计算的科学软件 当然参数可能有错误的长度等 所以我使用IllegalArgumentException类 因为它似乎是这个问题的正确名称 但我应该把throws IllegalArgumentException在函数定
  • 如何使用 python 中的循环创建多个目录?

    我想用循环创建 10 个目录 我尝试了以下代码 import os pathname 1 directory C Directory Path Name str pathname while pathname lt 11 if not os
  • 右移和有符号整数

    在我的编译器上 以下伪代码 值替换为二进制 sint32 word 10000000 00000000 00000000 00000000 word gt gt 16 产生一个word位字段如下所示 11111111 11111111 10
  • 在tomcat中共享文件夹

    如何使用 tomcat 6 浏览器访问文件夹 我想我需要向 web xml 添加上下文 我想 所以当我导航到http localhost 8080 myfiles http localhost 8080 myfiles我希望看到 c tem
  • 如何在 Windows 上以提升的权限运行脚本?

    我一直在试图弄清楚如何运行一堆都需要提升权限的应用程序 DameWare MSC exe PowerShell exe 和 SCCM Manager Console 等应用程序都在我的日常工作中使用 我现在运行的是Win7 计划最终迁移到W
  • Wp7 键盘支持多少种语言以及如何设置

    我希望为 Windows Phone 7 创建一个翻译应用程序 我不知道如何去做 这里是问题 我想知道当我在文本框中输入文本进行翻译时 我该怎么做 1 假设 我的Windows手机是中文的 如何将其更改为其他语言 例如法语 德语 俄语等 我
  • C 语言的限制输出

    在 C 中 我想将字符串限制为前 8 个字符 例如 我有 char out printf c str 我怎样才能使它只返回前 8 个字符 您可以通过设置格式说明符中的精度来限制长度 printf 8s str 这将打印up to指向的以空字
  • Maven Cobertura 插件未生成coverage.xml

    我试图生成一个coverage xml 以便我可以在Hudson 的Cobertura 插件中引用它 但该文件没有被创建 我已将以下内容添加到我的 POM 中
  • 如何在.net core中使用反射通过名称查找类的名称空间?

    我有一个仅包含类名称的字符串列表 我需要使用 Activator 创建它们的实例 但它们都可以位于不同的命名空间中 类将来可以移动到另一个名称空间中 因此我无法对其进行硬编码 如果您知道永远不会有多个具有相同名称的类型驻留在不同的命名空间中
  • 检测已安装的浏览器,以便 Process.Start("chrome") 不会出错

    我试图让用户选择我的应用程序用来启动网址的浏览器 目前它使用默认浏览器 但有些人想指定不同的浏览器 我想仅显示列表中已安装的浏览器 并且我将像这样启动它们 Process Start chrome url 更多信息 https learn
  • cakephp 复选框显示额外的隐藏字段

    foreach apps as app echo this gt Form gt input Application array type gt checkbox id gt app Application description div
  • Maven 发布:如何跳过部署步骤?

    要发布我正在使用的应用程序maven 发布 插件 此过程中的一个步骤是将版本部署到存储库中 我想避免这一步 但是当我从 pom 文件中删除 distributionManagement 时 出现错误 Deployment failed re
  • 更改端口号后无法在 Visual Studio 中调试?

    我添加了这一行 UseUrls http 5000 使其他主机的客户端能够访问 Web api public static void Main string args var host new WebHostBuilder UseKestr
  • 为什么sbt找不到KafkaUtils?

    我在使用 SBT 编译的代码 来自 Kafka 的 wordCount 中出现此错误 error home hduser sbt project project1 src main scala sparkKafka scala 4 35 o
  • Python:使用已知 URL 但未知驱动器号访问 Windows 映射网络驱动器

    我正在尝试编写一个可以在远程 Linux 服务器上移动和复制文件的 Python 脚本 但是 我不能假设运行该脚本 在 Windows 上 的每个人都会将此服务器映射到同一个字母 我不想提示用户输入正确的盘符 而是想简单地通过服务器的网络
  • SQLAlchemy db.session.query() 与 model.query

    对于简单的返回所有结果查询 是否应该优先选择一种方法 我可以在网上找到两者的用途 但无法真正找到任何描述差异的内容 db session query my model name all my model name query all 我觉得
  • RxAndroid:Schedulers.io() 线程上的 UI 更改

    我在 IO 线程上有一个简单的工作 即更改主屏幕壁纸 之后我尝试在 UI 线程上运行一些动画 AppObservable bindFragment this Observable just 0 observeOn Schedulers io
  • 实体框架 4 - 处理非常大(1000+表)的数据模型?

    我们有一个包含超过 1000 个表的数据库 并希望考虑使用 EF4 作为我们的数据访问层 但我担心将其用于如此大的数据模型的实际情况 我见过这个问题 https stackoverflow com questions 1519643 how