Я пытаюсь назначить IdentityRole для объекта IdentityUser, но получаю следующее исключение:
InvalidOperationException: экземпляр типа объекта «Пользователь» не может быть отслежен, поскольку другой экземпляр сто же значение ключа для {'Id'} уже отслеживается.При присоединении существующих сущностей убедитесь, что присоединен только один экземпляр сущности с данным значением ключа.
В моем методе я выбираю объект User и устанавливаю State в Detached.Я также пытался использовать AsNoTracking, но все еще та же ошибка.
Код :
public async Task<IdentityResult> AssignRole(int userId, string roleName)
{
IUser usr = await this.DBContext.Context.IdentityUsers.FirstOrDefaultAsync(r => r.Id.Equals(userId));
this.DBContext.Context.Detach(usr);
var result = await _user.AddToRoleAsync((User)usr, roleName);
return result;
}
DBContext, Detach :
public void Detach(ILCAssetsBase entity)
{
this.Entry(entity).State = EntityState.Detached;
}