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

是的,我直接實例化。該代碼儘可能是程序性的。我不知道什麼是邏輯層,但是我把這個代碼放在處理程序裏面,儘可能愚蠢和明顯。像存儲過程一樣思考。或者你可以把這個處理程序放在域外,並且它是一個域服務。 –