Migration zu MVC6 / EF7: PluralizingTableNameConvention

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

Frage

Ich migriere meine MVC5-App auf MVC6. Zurzeit verwende ich zwei Konventionen

    public class RentABikeDbContext : DbContext
{
    ...

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

Wie es aussieht, in MVC6 / EF7 gibt es keine Conventions-Eigenschaft für die neue Microsoft.Data.Entity.ModelBuilder-Klasse. Was ist der richtige Weg, um Konventionen zu definieren?

Akzeptierte Antwort

Entity Framework 7 hat keine eingebaute Pluralisierung, so dass dort nichts entfernt werden kann und Cascade delete ist noch nicht implementiert https://github.com/aspnet/EntityFramework/issues/333


Beliebte Antwort

Iterate durch alle Entitäten, erhalte die Fremdschlüssel und setze sie auf Delete Restricted:

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


Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum