C# System.ArgumentNullException:值不能为null。参数名称:unitOfWork

C# System.ArgumentNullException:值不能为null。参数名称:unitOfWork,c#,aspnetboilerplate,C#,Aspnetboilerplate,我正在尝试创建一个新用户和一个角色,并将角色分配给该用户,如下所示 var user = new User { EmailAddress = email, Name = name, Surname = surName, UserName = email, Password = Guid.NewGuid().ToString(), TenantId = existingTenant.Id, CreatorUserId = AbpSession

我正在尝试创建一个新用户和一个角色,并将角色分配给该用户,如下所示

var user = new User
{
    EmailAddress = email,
    Name = name,
    Surname = surName,
    UserName = email,
    Password = Guid.NewGuid().ToString(),
    TenantId = existingTenant.Id,
    CreatorUserId = AbpSession.UserId
};
user.SetNormalizedNames();

var existingUserId = _userRepository.InsertOrUpdateAndGetId(user);
existingUser = _userRepository.Get(existingUserId);

if (existingRole == null || existingRole.Id == 0)
{
    var newRole = new Role
    {
        DisplayName = role,
        Name = role,
        TenantId = existingTenant.Id,
        CreatorUserId = AbpSession.UserId
    };
    newRole.SetNormalizedName();
    var modifiedRole = _roleRepository.InsertOrUpdateAndGetId(newRole);
}
await _userManager.AddToRoleAsync(existingUser, role));
CurrentUnitOfWork.SaveChanges();
AddToRoleAsync始终导致System.ArgumentNullException:值不能为null。参数名称:unitOfWork


我不确定哪里出了问题。

我假设由于CurrentUnitOfWork的值而引发异常。为了跟踪问题,请尝试使用IUnitOfWorkManager

private readonly IUnitOfWorkManager _unitOfWorkManager;
...
using (var unitOfWork = _unitOfWorkManager.Begin())
        {
           //your operation 

            unitOfWork.Complete();
        }

我假设抛出异常是因为CurrentUnitOfWork的值。为了跟踪问题,请尝试使用IUnitOfWorkManager

private readonly IUnitOfWorkManager _unitOfWorkManager;
...
using (var unitOfWork = _unitOfWorkManager.Begin())
        {
           //your operation 

            unitOfWork.Complete();
        }

错误会准确地告诉您代码的错误,并且您的snipet不会向我们显示您在何处分配unitOfWork,当您尝试添加角色时,unitOfWork为Null显示您的完整方法。。。我需要查看方法定义错误会准确地告诉您代码的错误,并且您的snipet不会向我们显示您在哪里分配unitOfWork,当您尝试添加角色时,unitOfWork为Null显示完整的方法。。。我需要查看方法定义