0

我有两个问题。

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

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

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

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

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

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

4

1 回答 1

1
  1. 有可能将多个实体映射到同一个表(TPH 继承、表拆分),但这些可能性必须遵循严格的规则。否则,您最终可能会遇到无法将实体插入数据库的情况,因为它不包含记录的所有必需列。
  2. EF(带有 EDMX)也可以识别非公共属性- EF 代码首先需要具有可访问的 getter 或 setter 的属性。此外,这些行为方法可能是多余的,因为在属性中编写自己的 getter 和 setter 具有相同的含义。
于 2012-04-11T12:13:39.380 回答