.net 将整个数据库加载到数据模型?

.net 将整个数据库加载到数据模型?,.net,entity-framework,mapping,ado.net-entity-data-model,edmx,.net,Entity Framework,Mapping,Ado.net Entity Data Model,Edmx,我决定使用实体框架作为数据层。 我有200多张桌子和两个问题: 1.创建数据模型(*.edmx)-是否应包括所有表(整个数据库)? 2.稍后,我是否可以将表添加到数据模型中?通常,您希望表示数据模型中的所有表,否则无法将它们作为实体访问。对于像您这样的大型数据库模式,一种策略是将其拆分为单独的部分(单独的.emdx文件),这些部分共同构成数据模型-使用单个.edmx模型可能会在某个点上降低VS的速度-但我个人没有经历过这种情况,因此,您必须自己尝试一下——从现有数据库创建初始模型很容易,而且不费

我决定使用实体框架作为数据层。
我有200多张桌子和两个问题:
1.创建数据模型(*.edmx)-是否应包括所有表(整个数据库)?

2.稍后,我是否可以将表添加到数据模型中?

通常,您希望表示数据模型中的所有表,否则无法将它们作为实体访问。对于像您这样的大型数据库模式,一种策略是将其拆分为单独的部分(单独的.emdx文件),这些部分共同构成数据模型-使用单个.edmx模型可能会在某个点上降低VS的速度-但我个人没有经历过这种情况,因此,您必须自己尝试一下——从现有数据库创建初始模型很容易,而且不费吹灰之力


您可以在数据模型的任何位置添加表,集成向导允许您通过将表指向现有数据库来选择要添加的表。

我同意@BrokenGlass。VS2010SP1应该有一个更大的模型,但在单个模型中仍然有200个表太多了

NET团队发表了两篇关于使用大型模型的文章:和。通常,这些文章不仅涉及将映射拆分为多个EDMx,还涉及在多个EDMx中共享一些公共实体,这可能非常有用。如果没有此共享,则无法从一个EDMX在另一个EDMX中创建引用实体。此外,每个EDMX都有自己的
ObjectContext
。将映射拆分为多个EDMX应该基于某种架构决策:例如,由组件拆分或由聚合根拆分。无论如何,使用多个EDMX将增加应用程序的复杂性,并且您必须理解EF功能在多个EDMX中不起作用-例如,您不能在不同EDMX中映射的实体之上创建linq to entities查询

我回答了一个问题,其中我在单个
ObjectContext
中描述了一些,但我建议在您必须使用之前不要使用该解决方案-该解决方案唯一有意义的用法是对从数据库更新的实体使用单独的EDMX,对手动定义的SSDL使用单独的EDMX(例如自定义定义查询)。原因是“从数据库更新”功能将删除您的更改,因此将它们单独保存在从不更新的EDMX中会很有帮助