Ich habe eine Tabelle in Microsoft SQL Server 2008 R2 mit dem Namen Page
mit einem Primärschlüssel namens ID
. Ich habe eine andere Tabelle Navigation
mit einer Spalte PageID
. PageID
ist eine eindeutige Fremdschlüsselreferenz auf die Spalte ID
von Page
. Dies erstellt eine Eins-zu-eins-Beziehung zwischen Navigation
und Page
Datensätze.Datenbank erste Entity Framework Zuordnung eindeutiger Fremdschlüssel als einer für viele
Bei der Generierung von Modellen aus der Datenbank wird eine 1: n-Beziehung erstellt, wobei Page
eine Liste der Navigation
Datensätze enthält.
Ist dies einfach das Entity Framework, das erkennt, dass ein Fremdschlüssel beteiligt ist, und ignoriert die Eindeutigkeit der Spalten in der Datenbank?
Die SQL für die PageID
Spalte in Navigation
ist:
[PageID] INTEGER FOREIGN KEY REFERENCES [Page](ID) UNIQUE NOT NULL
Die SQL für die ID
Spalte in Page
ist:
[ID] INTEGER PRIMARY KEY IDENTITY(0, 1) NOT NULL
Hier ist die Lösung, die ich ursprünglich hatte, das, was Ladislav ist Erwähnte.
Die SQL für die PageID
Spalt in Navigation
waren:
[ID] INTEGER PRIMARY KEY FOREIGN KEY REFERENCES [Page](ID) NOT NULL
Ich versuchte das ursprünglich aber war besorgt, dass es eine Art schlechte Designentscheidung war. Ich nehme an, wir werden darauf zurückkommen. Haben Sie zufällig einen Verweis auf eine Microsoft-Seite, die über EF spricht und eindeutige Schlüssel ignoriert? –
[Hier ist Blog-Post] (http://blogs.msdn.com/b/efdesign/archive/2011/03/09/unique-constraints-in-the-entity-framework.aspx) über einzigartige Einschränkungen in EF aus letztes Jahr. Dies war eine Vorschau der Funktion, die hoffentlich in Zukunft implementiert werden könnte. Es wird nicht Teil der bevorstehenden .NET 4.5/EF 5.0 sein. Wenn Sie eindeutige Einschränkungen für die EF-Abstimmung in [Data UserVoice] wünschen (http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/1050579-unique-constraint-ie-candidate- Schlüssel-Unterstützung). –