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