2014-09-20 68 views
0

我想遵循CQRS模式,但我不知道誰應該包含誰。就像我應該在命令處理程序中注入應用程序服務一樣,還是反過來呢?命令處理程序應該包含服務還是服務包含命令?

這裏是例子。我正在向命令處理程序注入服務。並使用內的服務執行CreatProductCategoryCommandHandler

public CreateProductCategoryCommandHandler(ICategoryService categoryService) 
{ 
    _categoryService = categoryService; 
} 

方法或當我有命令處理程序我甚至需要服務嗎?

回答

6

什麼是您的定義中的「服務」?

通常,服務(例如,域服務,應用程序服務)在沒有命令處理程序(的概念)的情況下工作,而命令處理程序需要服務來處理該命令。因此,該服務需要注入命令處理程序,而不是相反。

+0

我的意思是應用程序服務。編輯帖子。謝謝。 – 2014-09-21 04:42:30

+3

啊,好的。 FWIW,IMO命令處理程序實際上是應用程序服務。 – 2014-09-21 13:58:25

+0

所以你的意思是我只是複製了這項工作?有另一個類別服務?另一個問題,我應該在哪裏提交對數據庫的更改。 [在實體框架中,在命令處理程序或類別服務中調用SaveChanges()]? – 2014-09-22 08:04:25