У меня возникает следующая ошибка, когда я удаляю объект из коллекции, а затем сохраняю его. Я понимаю, что мне нужно настроить мои отношения для удаления объекта, когда отношения удалены, но я не могу точно определить, что нужно делать, несмотря на поиск через Google и SO.Правильное определение отношений для удалений в коде EF Сначала
Отношения не могут быть изменены, поскольку одно или несколько из свойств внешнего ключа не имеют значения NULL.
У меня есть три таблицы: роль, разрешение и RolePermission. Я пытаюсь удалить RolePermission из роли.
public RoleMap()
{
HasKey(t => t.Id);
ToTable("Role");
Property(t => t.RoleName).HasColumnName("RoleName");
HasMany(t => t.RolePermissions).WithRequired(t => t.Role).HasForeignKey(t => t.RoleId);
}
public PermissionMap()
{
HasKey(t => t.Id);
ToTable("Permission");
Property(t => t.ApplicationId).HasColumnName("ApplicationId");
Property(t => t.PermissionName).HasColumnName("PermissionName");
Property(t => t.IsActive).HasColumnName("IsActive");
HasRequired(t => t.Application).WithMany(t => t.Permissions).HasForeignKey(t => t.ApplicationId);
}
public RolePermissionMap()
{
HasKey(t => t.Id);
ToTable("RolePermission");
Property(t => t.PermissionId).HasColumnName("PermissionId");
Property(t => t.RoleId).HasColumnName("RoleId");
HasRequired(t => t.Permission).WithMany(t => t.RolePermissions).HasForeignKey(t => t.PermissionId);
HasRequired(t => t.Role).WithMany(t => t.RolePermissions).HasForeignKey(t => t.RoleId);
}
Код для удаления выглядит следующим образом (все присоединенные к DbContext):
foreach (RolePermission rolePermission in permissionsToRemove)
{
role.RolePermissions.Remove(rolePermission);
}
//call commit/saveChanges here
Что мне нужно настроить для того, чтобы удалить его в самом деле вызвать удаление?