使用多个edmx文件与一个大型edmx文件?

时间:2011-01-26 03:33:27

标签: entity-framework ado.net-entity-data-model

我是实体模型的新手,我正在寻找一个如何组织我的实体模型的建议。

我应该创建一个实体模型文件(.edmx),它将包含我数据库中的所有表,或者我应该为用户,订单,产品等打破逻辑文件。

请让我知道哪一种更好,哪种优点/缺点(如果有的话)。

感谢。

3 个答案:

答案 0 :(得分:15)

我要反对这里的粮食。我现在用EF构建了2个大型应用程序,一个带有单个edmx,另一个带有几个。有利有弊,但一般来说,我发现使用一个edmx会让生活变得更容易。原因是应用程序中的域几乎从未真正分离,即使从一开始就存在。弹出新的要求,要求您将不同edmx中的实体关联起来,然后您必须重构并不断地移动。

EF 5 introduces Multiple Diagram s时,所有用于划分的参数很快就会过时,这是首先划分edmx文件的唯一真正好处。您不希望看到您没有工作的所有内容,也不希望产生性能影响。

在我的应用程序中,我们现在有一些重复的实体来获得导航属性的好处。也许您的应用程序具有真正的域分离,但通常一切都连接到用户。我正在考虑合并现在的两个,但这将是很多工作。所以我会说让它们保持在一起直到它成为一个问题。

答案 1 :(得分:8)

拥有一个包含所有实体的大型EDM通常不是一个好习惯,不建议使用。您应该提出不同的域模型集,每个域模型包含相关对象,而每个集都是不相关的,并且与另一个集断开。

看一下这篇文章,我详细解释了这个问题:
Does it make sense to create a single diagram for all entities?

答案 2 :(得分:2)

我认为我们应该在项目中保留多个edmx文件。它就像1-edmx文件 - 一个聚合(相关对象的集合)。根据ddd(域驱动器设计),我们的模型中可以有多个聚合。我们可以为每个聚合保留一个edmx文件