Как отключить каскадное удаление таблиц ссылок в EF code-first?

Я хочу, чтобы отключить каскадное удаление для таблицы ссылок с кодом структуры лица в первую очередь. Например, если у многих пользователей много ролей, и я пытаюсь удалить роль, я хочу, чтобы это удаление было заблокировано.если в настоящее время нет пользователей, связанных с этой ролью. Я уже удаляю соглашение каскадного удаления в моемOnModelCreating:

protected override void OnModelCreating(DbModelBuilder modelBuilder) {
    ...
    modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();

И тогда я настроил таблицу ссылок ролей пользователей:

modelBuilder.Entity<User>()
    .HasMany(usr => usr.Roles)
    .WithMany(role => role.Users)
    .Map(m => {
        m.ToTable("UsersRoles");
        m.MapLeftKey("UserId");
        m.MapRightKey("RoleId");
    });

Тем не менее, когда EF создает базу данных, он создает каскад удаления для отношений внешнего ключа, например.

ALTER TABLE [dbo].[UsersRoles]  WITH CHECK ADD  CONSTRAINT [FK_dbo.UsersRoles_dbo.User_UserId] FOREIGN KEY([UserId])
REFERENCES [dbo].[User] ([UserId])
ON DELETE CASCADE
GO

ALTER TABLE [dbo].[UsersRoles]  WITH CHECK ADD  CONSTRAINT [FK_dbo.UsersRoles_dbo.Role_RoleId] FOREIGN KEY([RoleId])
REFERENCES [dbo].[Role] ([RoleId])
ON DELETE CASCADE
GO

Как я могу остановить EF, генерирующий этот каскад удаления?

Ответы на вопрос(3)

Ваш ответ на вопрос