2012-04-08 7 views
4

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 

Antwort

5

Entity Framework unterstützt keine eindeutigen Schlüssel noch so wird diese Information wirklich ignoriert und eine zu viel Beziehung abgebildet wird. Die einzige Möglichkeit, in EF eine Eins-zu-Eins-Beziehung zu verwenden, ist der gemeinsame Primärschlüssel (die ID der Navigation ist FK der ID der Seite).

+0

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? –

+2

[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). –

Verwandte Themen