【问题标题】:Using multiple edmx file vs. one large edmx file?使用多个 edmx 文件与一个大 edmx 文件?
【发布时间】:2011-06-15 15:08:48
【问题描述】:

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

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

请告诉我哪个更好以及每种替代方案的优缺点(如果有的话)。

谢谢。

【问题讨论】:

  • 你的模型应该是关于实体的,而不是关于表的。

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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    拥有一个包含所有实体的大型 EDM 通常不是一种好的做法,也不建议这样做。你应该想出不同的领域模型集,每组都包含相关的对象,而每组都是不相关的,并且与另一组不相关。

    看看这篇我详细解释过这个问题的帖子:
    Does it make sense to create a single diagram for all entities?

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多