Migrazione a MVC6 / EF7: PluralizingTableNameConvention

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

Domanda

Sto migrando la mia app MVC5 su MVC6. Attualmente sto usando due convenzioni

    public class RentABikeDbContext : DbContext
{
    ...

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

Tuttavia, in MVC6 / EF7 non esiste alcuna proprietà Convenzioni nella nuova classe Microsoft.Data.Entity.ModelBuilder. Qual è il modo corretto di EF7 per specificare le convenzioni?

Risposta accettata

Entity Framework 7 non ha alcuna pluralizzazione incorporata, quindi nulla da rimuovere lì e l'eliminazione di Cascade non è ancora implementata https://github.com/aspnet/EntityFramework/issues/333


Risposta popolare

Effettua l'iter attraverso tutte le entità, ottieni le chiavi esterne e impostale su Elimina limitato:

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


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché