Migración a MVC6 / EF7: PluralizingTableNameConvention

asp.net-core-mvc entity-framework-core

Pregunta

Estoy migrando mi aplicación MVC5 a MVC6. Actualmente estoy usando dos convenciones.

    public class RentABikeDbContext : DbContext
{
    ...

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

Sin embargo, parece que en MVC6 / EF7 no hay propiedad de Convenciones en la nueva clase Microsoft.Data.Entity.ModelBuilder. ¿Cuál es la forma correcta de EF7 para especificar convenciones?

Respuesta aceptada

Entity Framework 7 no tiene ninguna pluralización incorporada, por lo que no hay nada que eliminar, y la eliminación de Cascade aún no está implementada https://github.com/aspnet/EntityFramework/issues/333


Respuesta popular

Iterar a través de todas las entidades, obtener las claves externas y establecerlas en Eliminar restringido:

foreach (var relationship in builder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
{
    relationship.DeleteBehavior = DeleteBehavior.Restrict;
}



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué