Entity Framework erstellt eine Pluraltabelle, während die Ansicht eine einzelne Tabelle erwartet
Im bereitgestellten Code erstellt Entity Framework mehrere Tabellen, obwohl die Ansicht erfordert eine einzelne Tabelle. Diese Diskrepanz entsteht aufgrund eines Unterschieds in den Namen der von Entity Framework erstellten Tabelle und der von der Ansicht referenzierten Tabelle.
Die von Entity Framework erstellte Tabelle folgt der Konvention, den Namen der Entität zu pluralisieren. Daher wird in diesem Fall eine Tabelle mit dem Namen „Votes“ generiert. Die Ansicht erwartet jedoch eine Tabelle mit dem Namen „Vote“. Der Hauptgrund dafür ist die Unterstützung von EF durch den MySQL .net Connector. Das Entfernen der Pluralisierung und das Vornehmen anderer Anpassungen sollte das Problem beheben.
Erstens enthält die Methode „ApplicationStart“ einen kleinen Fehler:
// Database.SetInitializer(new DropCreateDatabaseAlways<myDB>()); Database.SetInitializer(new myDBInitializer());
Darüber hinaus ist die Basisimplementierung von „OnModelCreating“ deaktiviert erforderlich:
protected override void OnModelCreating(DbModelBuilder modelBuilder) { // modelBuilder.Entity<Vote>().ToTable("Votes") modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); }
Es wurde auch vermutet, dass der MySQL .net Connector EF daran hindert, Datenbanken zu erstellen, was die Erstellung einer leeren Datenbank im Voraus erforderlich macht. Diese Einschränkung gilt im aktuellen Szenario nicht für die Connector-Versionen 6.4.4. Das Erstellen der Datenbank ist vorzuziehen, wenn der Benutzer über die erforderlichen Berechtigungen verfügt.
Diese Anpassungen sollten die Diskrepanz zwischen dem von Entity Framework erstellten Plural-Tabellennamen und dem von der Ansicht erwarteten Singular-Tabellennamen beheben.
Das obige ist der detaillierte Inhalt vonWarum erstellt Entity Framework eine Pluraltabelle, während meine Ansicht eine Singulartabelle erwartet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!