2014-09-20 66 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