zoukankan      html  css  js  c++  java
  • ABP ModuleZero 添加角色_创建角色是报错的问题解决方案

    ABP升级后,大概3.6.1以后,在.net framework里面,从官方下载的Module zero模板添加角色是出现下面错误。

    这个问题,算是新版apb的一点小缺憾,好像在.net core的模板里面没问题。解决方案:

    public override async Task Create(CreateRoleDto input) 
    {
        CheckCreatePermission();
        var role = ObjectMapper.Map<Role>(input);
        CheckErrors(await _roleManager.CreateAsync(role));
        var grantedPermissions = PermissionManager
                    .GetAllPermissions()
                    .Where(p => input.Permissions.Contains(p.Name))
                    .ToList();
        //加上下面代码
        //await CurrentUnitOfWork.SaveChangesAsync();
        await UnitOfWorkManager.Current.SaveChangesAsync(); //这行是后来加的不晓得拼写错误没有,有错自己修正,反正大概是这样
      
        await _roleManager.SetGrantedPermissionsAsync(role, grantedPermissions);
        return MapToEntityDto(role);
    }

    报错原因:因为uow是事物提交的,虽然调用了createasync,但事物未提交,数据没有保存到数据库,后面执行分配权限获取不到改角色的id,所以报错。

    貌似是因为在.net core里面,执行了XX.CreateAsync()后,如果后面的代码会用到当前实体,就会自动提交事务,但.netframework里面不行,所以在分配权限之前我们要先手动savechange。

  • 相关阅读:
    JavaScript语言基础
    IP地址分类及CIDR划分方法
    Python静态方法实现单实例模式
    【转载】http和socket之长连接和短连接
    DDoS攻击
    Vue自定义过滤器
    解决跨域问题
    微信菜单创建
    canvas标签(1)--线条、矩形、圆形、文本、阴影、抛小球
    Bootstrap CSS概览代码文字标注篇
  • 原文地址:https://www.cnblogs.com/hpnet/p/9103695.html
Copyright © 2011-2022 走看看