¿Cómo deshabilitar la eliminación en cascada para las tablas de enlace en el código EF primero?

Quiero deshabilitar las eliminaciones en cascada para una tabla de enlace con el código del marco de la entidad primero. Por ejemplo, si muchos usuarios tienen muchos roles e intento eliminar un rol, quiero que se bloquee ese borradoa no ser que no hay usuarios actualmente asociados con ese rol. Ya eliminé la convención de eliminación en cascada en miOnModelCreating:

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

Y luego configuro la tabla de enlace de rol de usuario:

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

Sin embargo, cuando EF crea la base de datos, crea una cascada de eliminación para las relaciones de clave externa, por ejemplo.

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

¿Cómo puedo detener a EF generando esta eliminación de cascada?

Respuestas a la pregunta(3)

Su respuesta a la pregunta