我决定使用实体框架作为数据层。我有200多个表格和两个问题:
1.创建数据模型时(* .edmx) - 是否应该包含所有表格(整个数据库)?
2.稍后,我可以将表添加到数据模型吗?加载整个数据库到数据模型?
回答
我同意@BrokenGlass。 VS 2010 SP1应该有improved performance of the designer,这对于较大的模型来说效果要好得多,但单个模型中的200张表仍然太多。
ADO.NET团队发布了两篇关于使用大型模型的文章:Part 1和Part 2。一般来说,这些文章不仅仅是将你的映射分解为多个EDMX,而且还涉及到在多个EDMX中共享一些可能非常有用的公共实体。没有这种共享,你就不能在另一个EDMX中从一个EDMX中引用实体。另外每个EDMX将有其自己的ObjectContext
。将映射分割为多个EDMX应基于某种架构决定:例如由组件分割或由聚合根分割。无论如何,使用多个EDMX将增加应用程序的复杂性,并且您仍然必须了解EF功能不能跨多个EDMX工作 - 例如,您不能在映射到不同EDMX中的实体之上创建一个LINQ到实体的查询。
我回答说,我在单ObjectContext
描述了一些hack how to use multiple EDMX files一个问题,但我建议不要使用这种解决办法,直到你必须 - 该解决方案的唯一有意义的用途是从数据库和独立EDMX更新的SSDL实体手动定义单独的EDMX (例如自定义的DefiningQuery)。原因是从数据库函数更新函数将删除您的更改,因此将它们单独保存在从不更新的EDMX中会有帮助。
通常,您希望表示数据模型中的所有表,否则无法将它们作为实体进行访问。像你这样的大型数据库模式的一个策略是将它分解成单独的部分(单独的.emdx文件),这些部分一起构成数据模型 - 使用单个.edmx模型可以在某些时候减慢VS - 我个人从未经历过,所以你必须自己尝试一下 - 从现有的数据库创建初始模型很容易,而且毫不费力。
您可以随时在数据模型中添加表格,集成向导允许您仅通过将其指向现有数据库来选择要添加的表格。
- 1. 将ViewController数据加载到模型中
- 2. 数据加载到Oracle数据库
- 3. 加密整个数据库
- 4. Apache Spark是否从目标数据库加载整个数据?
- 5. 哪个数据库模型?
- 6. 未能将大型数据集加载到h2数据库中
- 7. YCSB加载到数据库中的数据类型是什么?
- 8. 需要将整个postgreSQL数据库加载到内存中
- 9. 在表单上加载数据库的多个数据加载
- 10. 将模型数据加载到形成Spring MVC时加载
- 11. Django窗体预加载模型数据
- 12. 余烬数据未加载belongsTo模型
- 13. 模型API或加载批量数据?
- 14. 在后台加载模型数据
- 15. 核心数据:加载模型失败
- 16. 从YAML文件加载模型数据
- 17. 如何将多个文件模式加载到数据库中?
- 18. 从另一个数据库备份恢复模型数据库
- 19. Spring MVC - 从数据库加载数据
- 20. “加载数据infile”插入数据库
- 21. CKEDITOR从数据库加载数据AJAX
- 22. Twitter类型从数据库中加载数据
- 23. Django - 将数据附加到不会保存到数据库的模型
- 24. 使用文件数据加载WPF数据模型
- 25. 加密整个Rails数据库
- 26. zendframework 2 - 加载初始数据和数据库模式
- 27. 数据表 - 预加载数据的第一页,而完整数据集加载
- 28. 复制整个数据库内容(模式和数据)
- 29. 保存到数据库模型图标
- 30. 关系数据库模型