我喜欢
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中,命令没有返回值,因此上面的模式将是无效的.
任何建议都感激不尽.