DDD模型到EF

时间:2012-04-11 11:43:11

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

我有两个问题。

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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