2014-09-20 2 views
0

Я пытаюсь следовать шаблону CQRS, но я не знаю, кто должен содержать кого. Например, следует ли внедрять службы приложений в обработчики команд или наоборот?Должен ли командный обработчик содержать службы или службы, содержащие команды?

вот пример. Я заказываю службу обработчику команд. и использовать сервис внутри Execute метод CreatProductCategoryCommandHandler

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

или мне даже нужны услуги, когда у меня есть обработчик команд?

ответ

6

Что такое "сервис" в вашем определении?

Обычно служба (например, служба домена, служба приложения) работает без (представления) обработчика команд, а обработчик команды нуждается в обслуживании для обработки команды. Следовательно, служба должна быть введена в обработчик команд, а не наоборот.

+0

Я имею в виду приложение. отредактировал сообщение. Спасибо. –

+3

ах, хорошо. FWIW, обработчики команд IMO на самом деле являются прикладными службами. –

+0

, значит, вы просто дублируете работу? с другой службой категории? другой вопрос, где я должен внести свои изменения в базу данных. [в структуре сущности, вызывающей SaveChanges()] в обработчике команд или службе категории? –