0
ASP.NET CoreでApplicationUserの更新メソッドを作成しようとしています。ユーザーに複数のロールを追加する方法
目標は、ユーザーに新しい役割のリストを割り当てることです。
public async void Update(UserPresentationModel user)
{
try
{
var old = await GetUserById(user.Id);
old.UserName = user.UserName;
old.Email = user.Email;
var oldRoles = await _userManager.GetRolesAsync(old);
var userStore = new UserStore<ApplicationUser>(_context);
await _context.SaveChangesAsync();
foreach (var role in oldRoles)
{
await userStore.RemoveFromRoleAsync(old, role);
}
foreach (var role in user.Roles)
{
await userStore.AddToRoleAsync(old, role);
}
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
しかし、私はこれを行うと、AddToRoleAsyncメソッドで多くの例外が発生します。場合によってはnull参照であることもあります。だからこれは明らかにこれを行うための最良の方法ではありません、そして私はより良い方法が何だろうと思っていましたか? OverwriteRulesメソッドはありますか?