我喜欢
Command Query Separation的想法,但是无法看到如何在
添加实体的MVC Controller操作中使用它,并且在
添加实体后需要新实体的ID.
例如,在下面的简化示例中,服务用于创建新项目:
- public ActionResult Assign(Assignviewmodel viewmodel)
- {
- var newItem = _AssignItemService.AssignItem(viewmodel.ItemName,viewmodel.ItemValue);
-
- return RedirectToAction("ListItem",new {id = newItem.Id);
- }
但是当我重定向到要显示新项目的操作时,我需要知道新创建的项目的ID,以便可以从数据库中检索它.所以我必须要求服务返回新创建的项目(或至少,它的ID).
在纯CQS中,命令没有返回值,因此上面的模式将是无效的.
任何建议都感激不尽.