【问题标题】:DDD model to EFDDD 模型转 EF
【发布时间】:2012-04-11 11:43:10
【问题描述】:

我有两个问题。

1:目前我有两个模型类映射到 EF 图中的两个实体。

DDD 如何与 EF 一起使用,因为如果我决定将模型类拆分为更小的特定类,例如从 2 到 4。EF 与它们有何关系?

我是否必须创建一个单独的 DTO 来将这四个模型类映射到 EF 可以理解的两个实体模型?

只是想知道其他人是如何解决这个问题的。

2:EF 仅识别具有公共属性的模型。如果我将模型类更改为具有 GetName()、SetName()、GetAddress() 等行为方法并将公共属性删除为私有成员,则 EF 会抛出一个不稳定并抱怨它在我的模型上找不到任何属性。 我该如何解决这个问题?或者答案是否与第一个问题相同,因为我需要创建一个具有公共属性的 DTO,该公共属性映射自 EF 将使用的模型类?

我只是在考虑这是否是正确的路径,因为将我的 DDD 模型类映射到 EF 理解的另一组 DTO 或 EF 模型类似乎有点多余。 如果我必须映射到 EF 类,它们会在模型层还是存储库层中?

【问题讨论】:

    标签: asp.net-mvc-3 entity-framework domain-driven-design


    【解决方案1】:
    1. 可以将多个实体映射到同一个表(TPH 继承、表拆分),但这些可能性必须遵循严格的规则。否则,您最终可能会遇到无法将实体插入数据库的情况,因为它不包含记录所需的所有列。
    2. EF(带有 EDMX)识别 non public properties as well - EF 代码至少需要具有可访问 getter 或 setter 的属性。此外,这些行为方法可能是多余的,因为在属性中编写自己的 getter 和 setter 具有相同的含义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 2020-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多