1

我有以下型号集:自动映射器映射将模型发布到域模型?

  • 实体
  • 查看
  • 请求(邮政法)

我有以下automapper映射:

  • 实体 - >域名
  • 域 - >实体
  • 域 - >查看

我也很难理解什么做与我的帖子车型。他们是否应该直接映射到域名?它们是否应映射到RequestsDomains?

您认为如何?

+1

“实体” ==由实体框架映射的对象? “域”==域对象?请澄清。在DDD中,域对象创建命令通常不会自动映射字段到域对象,因为这会绕过不变实施。正常的构造函数或工厂被用来代替。 – guillaume31

回答

1

邮政模型几乎总是在DDD意义上的命令。如果它们是真正的命令,那么你的域负责执行不变量等。映射可以绕过所有这些。我很少映射回域名。你可以通过一个命令处理程序或直接在命令域的任何潜在状态变化:

class Invoice { 
    void Handle(ApproveCommand command) { 
     // Do work to approve an invoice. ApproveCommand is your Post model 
    } 
} 
+0

因此,如果我需要从客户端的输入中添加一个实体,那么您在该Handle方法中直接实例化一个实体? 有些属性可以直接映射,其他一些属性只能填充到逻辑层中。那么,那种不好的做法是映射到Domain并忽略一些属性,然后在Core中填充它们的值? –

+0

是的,我直接实例化。该代码尽可能是程序性的。我不知道什么是逻辑层,但是我把这个代码放在处理程序里面,尽可能愚蠢和明显。像存储过程一样思考。或者你可以把这个处理程序放在域外,并且它是一个域服务。 –