Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Entity Framework erstellt einen Tabellennamen im Plural, aber die Ansicht erwartet einen Tabellennamen im Singular?

Also gab ich es auf, es so zu machen, wie ich es für richtig hielt, und entfernte die Pluralisierung insgesamt. Ich weiß es nicht genau, aber ich nehme an, dass das Problem mit der Unterstützung von EF durch den mysql .net-Connector zu tun hat. Folgendes habe ich getan.

Zuerst gab es einen Fehler in meiner ApplicationStart-Methode:

//WRONG
//Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
Database.SetInitializer(new myDBInitializer());

Zweitens habe ich aufgehört, die OnModelCreating-Basisimplementierung aufzurufen, die nicht im Originalcode aufgeführt ist, da ich sie nur gemäß dem Vorschlag von jgauffin implementiert habe:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    //DONT DO THIS ANYMORE
    //base.OnModelCreating(modelBuilder);
    //modelBuilder.Entity<Vote>().ToTable("Votes")
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}

Drittens habe ich in einigen Beiträgen gelesen, dass der MySQL .net Connector es EF nicht erlaubt, tatsächlich eine Datenbank zu erstellen, also hatte ich zunächst die leere DB erstellt. Dies scheint bei Connector 6.4.4+ nicht mehr der Fall zu sein, und solange der Benutzer Ihrer Verbindungszeichenfolge die Möglichkeit hat, neue Datenbanken zu erstellen, funktioniert es besser, wenn anfänglich keine vorhanden ist.

Einmal habe ich alle oben genannten Schritte durchgeführt, es schien zu funktionieren. Jetzt kann ich also wenigstens weitermachen. Hoffentlich können wir in Zukunft die Ursache für die Plural-/Singular-Diskrepanz herausfinden.

Vielen Dank an alle für ihre Zeit und Mühe.