это мои упрощенные сущности:
public class User : Entity
{
public virtual ICollection<Role> Roles { get; set; }
}
public class Role : Entity
{
public virtual ICollection<User> Users { get; set; }
}
var user = dbContext.Set<User>().Find(id);
dbContext.Set<User>().Remove(user);
dbContext.SaveChanges(); // here i get error (can't delete because it's the
//referenced by join table roleUsers
проблема в том, что таблица соединений ссылается на таблицу пользователей, а ef не удаляет записи из таблицы соединений перед удалением пользователя
Я попытался написать контрольные примеры и заметил, что:
если использовать тот же контекст для добавления пользователя с ролями, сохранения изменений, удаления и повторного сохранения изменений, это работает
но если я использую 2 разных контекста, один для вставки, а другой для удаления, я получаю эту ошибку