8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

CQRS 适合 Asp.net MVC 吗?

Sergio Belevskij 1月前

14 0

我找到了使用 Asp.net MVC[HttpPost][ValidateAntiForgeryToken]public async Task 的 CQRS 示例实现Edit(EditViewModel vm){//首先检查视图模型是否有效...

我找到了 使用 Asp.net MVC 的 CQRS 示例

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit(EditViewModel vm)
{
    // First check if view model is valid
    if (ModelState.IsValid)
    {
        // If so create the command object
        var command = new AddOrEditCommand();
         
        // Use Automapper to map from the view model to the command
        Mapper.Map(vm, command);
         
        // Call the appropriate command handler
        var commandResult = await CommandDispatcher.Dispatch(command);
        if (commandResult.Success)
        {
            // If the command is successful, we can retrieve any data returned
            var newId = (int)commandResult.Data;
 
            // Do stuff with the generated Id of the entity if we need to...
                 
            return RedirectToAction("Index");
        }        
        else
        {
            // Command not successful, so handle error as appropriate
        }
    }
 
    // View model not valid, so return to view
    return View("Edit", vm);
}

它似乎适合读取操作,但当涉及到写入操作时,视图模型(属于 mvc 层)、命令(应用程序或核心层)和实体类型作为 dbcontext 的一部分。我们需要将视图映射到命令,然后将命令映射到实体。这是好方法吗?
另一方面,如果我们将使用命令作为控制器操作参数,那么为什么我们需要视图模型这一部分 mvc?例如, public async Task<ActionResult> Edit(SomeCommand command) 也许有更好的方法来调整 MVC 和 CQRS?

帖子版权声明 1、本帖标题:CQRS 适合 Asp.net MVC 吗?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Sergio Belevskij在本站《asp.net-mvc》版块原创发布, 转载请注明出处!
最新回复 (0)
返回
作者最近主题: