Я пытаюсь добавить существующую роль к существующему пользователю и получаю следующую ошибку:
System.ObjectDisposedException: 'Невозможно получить доступ к удаленному объекту. Распространенной причиной этой ошибки является удаление контекста, который был разрешен путем внедрения зависимости, а затем попытка использовать тот же экземпляр контекста в другом месте вашего приложения. Это может произойти, если вы вызываете Dispose () для контекста или заключаете контекст в оператор using. Если вы используете внедрение зависимостей, вы должны позволить контейнеру внедрения зависимостей избавиться от экземпляров контекста. '
Из-за структуры нашей таблицы мы не используем идентификацию по умолчанию, поэтому я работаю над созданием методов по ходу дела. Я предполагаю, что моя проблема из-за недостатка знаний о том, как именно работает EF. Когда я перемещаю код создания из моего UserStore в мой Startup, он просто отлично сохраняет.
Возможно, стоит отметить, что мы являемся первой группой базы данных, а не первой группой кода.
Это функция из UserStore.cs
public async Task AddToRoleAsync(SecUser user, string roleName, CancellationToken cancellationToken)
{
SecRole role = null;
try
{
role = db.SecRoles.Where(x => x.SecRoleName == roleName).Single();
}
catch (Exception ex)
{
throw ex;
}
SecUserRole newUserRole = new SecUserRole();
newUserRole.SecUserId = user.SecUserId;
newUserRole.SecRoleId = role.SecRoleId;
newUserRole.SiteId = user.SiteId;
newUserRole.CreatedBy = 1; //Change to Current User ID
newUserRole.CreatedByProgram = "eCLERC";
newUserRole.CreatedTimestamp = DateTime.Now;
newUserRole.ChangedBy = 1; //Change to Current User ID
newUserRole.ChangedByProgram = "eCLERC";
newUserRole.ChangedTimestamp = DateTime.Now;
db.Add(newUserRole);
await db.SaveChangesAsync();
}
строка из моей функции создания
var temp = await UserManager.AddToRoleAsync(user, "SupportAdmin");
Это приложение будет многопользовательским / многопользовательским приложением, которое может одновременно иметь сотни пользователей. Я не ожидаю, что они будут добавлять роли с такой скоростью, но я добавляю это так, чтобы, если я делаю что-то не так с EF, меня могли перенаправить по правильному пути. Я с удовольствием отвечу на любые вопросы или добавлю больше деталей, если это необходимо.