Migration vers MVC6 / EF7: PluralizingTableNameConvention

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

Question

Je migre mon application MVC5 vers MVC6. Actuellement, j'utilise deux conventions

    public class RentABikeDbContext : DbContext
{
    ...

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

Cependant, il semble que dans MVC6 / EF7, il n'y ait pas de propriété Conventions dans la nouvelle classe Microsoft.Data.Entity.ModelBuilder. Quelle est la méthode EF7 appropriée pour spécifier les conventions?

Réponse acceptée

Entity Framework 7 n'a pas intégré dans pluralisation, donc rien à enlever là, et Cascade supprimer n'a pas encore été mis en œuvre https://github.com/aspnet/EntityFramework/issues/333


Réponse populaire

Parcourez toutes les entités, récupérez les clés étrangères et définissez-les sur Suppression restreinte:

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



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi