2016-08-09 2 views
0

Ich bin gerade dabei, .NET RC1 auf RTM zu aktualisieren. Als Teil des Upgrade-Prozesses muss ich Entity Framework von 7.0.0-rc1 auf 1.0.0 aktualisieren. Die process is described here und ist ziemlich einfach. Als Teil dieses Prozesses gab es eine Änderung an der table naming conventions.Entity Framework DisplayName ist nicht der Tabellenname

Ich den entsprechenden Code zu OnModelCreating in meinem Kontext hinzufügen.

Wie Sie sehen können, drucke ich einige der Informationen aus, weil das Mapping nicht richtig geschieht. In diesen Ausgaben bleibt DisplayName der Standardwert. Also, Gender (mein Modell) nicht zu GenderLookup (meine Tabelle) zugeordnet. Wenn es etwas ändert, verwende ich auch Datenanmerkungen und die Fluent API, um meine Tabellennamen meinen Modellen zuzuordnen (ich verlasse nie den Standard). Ich bin mir nicht sicher, wie das spielt. Wie:

[Table("GenderLookup")] 
public class Gender 
{ 
    // ... 
} 

und

builder.Entity<ApplicationUser>().ToTable("PreExistingUser"); 

Was könnte ich falsch hier tun?

Antwort

0

ich meine Suche nach fortgesetzt, was man vor sich gehen, und entdeckte this announcement from Rowan Miller, die die folgenden angegeben:

Auswirkungen auf bestehende Anwendungen

Wenn Sie eine App von RC1 zu RC2 aktualisieren, haben Sie mehrere Optionen:

  • wenn Sie die Datenbank aus dem Modell generieren, können Sie ein neues Migrations Gerüst die Namensänderungen (oder löschen und neu erstellen die Datenbank zu übernehmen, wenn Sie EnsureCreated verwenden() Ratte sie als Migrationen).
  • Geben Sie die Tabellennamen manuell so ein, dass sie mit denen in RC1 übereinstimmen. Dies kann in OnModelCreating oder mit dem [Table] -Attribut erfolgen. See the docs for more info.
  • Verwenden Sie den Code aus dem folgenden Abschnitt, um Tabellennamen in Großbuchstaben zu konfigurieren, damit sie mit denen in RC1 übereinstimmen.

Danach lesen, tauchte ich meinen Code wieder in und entdeckt, dass es ein paar Tische waren, die nicht hatte OnModelCreating in nicht bedeckt das [Table] Attribut oder wurden. (Da mein Team diese verwenden muss, um einen Rückfall auf die Standardwerte zu vermeiden, wurde dies möglicherweise in einem Review verpasst.)

Sobald ich diese Situation berichtigt hatte, funktionierte alles wie erwartet. Ich wollte teilen, für den Fall, dass jemand anderes das gleiche Problem hat.

Verwandte Themen