【发布时间】:2012-05-03 23:22:27
【问题描述】:
我喜欢Command Query Separation 的想法,但看不到如何在添加实体的 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 中,命令没有返回值,所以上面的模式是无效的。
感谢您的任何建议。
【问题讨论】:
标签: c# asp.net-mvc command-query-separation