Entity Framework 4.1 code erste KeyAttribute als non-identity-Spalte
Ich habe ein problem mit einem code-first-Modell, das ich habe. Die Daten werden jetzt in der Datenbank, so kann ich nicht re-Samen der Datenbank mit einem DropCreateDatabaseIfModelChanges Klasse, aber ich brauche zum ändern einer Tabelle, so dass eine bigint-Spalte keine IDENTITY(1,1). Ich habe es geschafft, dies zu tun mit SSMS aber jetzt ist mein EF-code ist zu sagen, dass es out of date ist.
Dies ist der code für die Tabelle in Frage:
public class Vote {
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public long FacebookUserId { get; set; }
[Required]
public Entity Entity { get; set; }
}
So, ich habe mich verändert mein schema für die Tabelle, und mein Modell (ich dachte, das war die Reflexion darüber, aber ich bin offensichtlich falsch ist), aber EF ist noch, dass für mein Modell veraltet ist, und ich kann nicht re-Seeding für die Datenbank, um es "perfekt".
Jede Hilfe wäre sehr geschätzt werden.
Dank,
Benjamin
InformationsquelleAutor Benjamin Howarth | 2011-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, fügen Sie diese zu Ihrem
OnModelCreating
:Sollte entfernen der Ausnahme, dass Modell ist veraltet, aber bis zu dieser Zeit müssen Sie immer synchronisieren von Modell und Datenbank manuell.
Was genau hast du geändert in deinem code. Ich dachte, dass Sie nur Hinzugefügt
DatabaseGenerated
Attribut, aber dieser beschwert sich über nicht zugeordnete Entität. Sie nicht brauchen, um re-seed-DB.Separate Tabelle, hat sich nichts geändert, auch gerade wieder ausgesät und noch immer diese Fehlermeldung.
Separate Tabelle anders ist, dann ändern Sie einen Tisch, so dass Sie ein bigint ist nicht eine Identität.
Sorry, ich meine die Entität zugeordnet ist. Letztendlich hatte ich meine Daten sichern auf eine zweite Datenbank, re-gen ' Ing das Modell mit einem DropCreateDatabaseIfModelChanges Politik, und dann die Portierung der Daten zurück. Danke für all Eure Hilfe aber 🙂
InformationsquelleAutor Ladislav Mrnka
Mit Daten Anmerkung:
Mithilfe der fluent-API:
InformationsquelleAutor Shehab Fawzy
bezogen auf dieser Beitrag ...
Scheint es, dass entity framework erwartet standardmäßig, dass Sie sich einfügen in die identity-Spalte.
um dieses Problem zu lösen versuchen
oder schmücken Sie Ihre Schlüssel in der POCO-mit ...
[DatabaseGenerated(DatabaseGeneratedOption.None)]
, nicht[DatabaseGenerated(DatabaseGenerationOption.None)]
InformationsquelleAutor Ahmed Eid Yamany