Представьте себе эту модель базы данных:
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public string Firstname { get; set; }
public ICollection<Role> Roles { get; set; }
}
public class Role
{
public int Id { get; set; }
public string RoleType { get; set; }
public ICollection<User> Users { get; set; }
}
Существует промежуточная таблица, которая выглядит следующим образом (не представлена в виде POCO):
UserRole
Затем я решил удалить роль, а это значит, что все отношения этой роли в промежуточной таблице также должны быть удалены.
Независимо от того, что я пытаюсь, я получаю либо это сообщение об ошибке:
Инструкция DELETE конфликтует с ограничением REFERENCE "FK_UserRole_Role". Конфликт произошел в базе данных "dbname", таблице "dbo.UserRole", столбце "RoleId".
Или это сообщение об ошибке:
Объект нельзя удалить, так как он не найден в ObjectStateManager.
Первое сообщение об ошибке исходит от этой попытки:
_dataContext.Entry(role).State = EntityState.Deleted;
_dataContext.SaveChanges();
Это отвечает за второе сообщение об ошибке:
_dataContext.Circuit.Remove(role);
_dataContext.SaveChanges();
Я сделал еще несколько попыток, но я их не помню, так как пытался заставить это работать с сегодняшнего утра (GMT +2).
Может ли кто-нибудь указать мне правильное направление?