Frage

Das Re-Design für eine große Datenbank an unserer Gesellschaft macht ausgiebig Gebrauch von Verbundprimärschlüssel für die Datenbank.

Auswirkungen auf die Leistung vergessend, führt dies zu Schwierigkeiten, wenn sie mit diesem db in Entity Framework 4.0 zu arbeiten? Die Datenbankstruktur ist unwahrscheinlich, dass Veränderung und ich bin nicht für „philosophische“ Debatte aus, aber was sind die praktischen Auswirkungen?

Nach Jeremy Miller "Composite-Taste jede Art von Object / Relational Mapping und persistance im allgemeinen schwieriger machen." aber er nicht wirklich sagen, warum. Ist das relavent, wie Entity Framework 4.0 Griffe Schlüssel?

War es hilfreich?

Lösung

Nein, EF4 zusammengesetzten Schlüssel unterstützt nur in Ordnung.

Das Problem ist eine Tabelle mit einem Ersatzschlüssel und zusammengesetzten Schlüsseln. Sie können nur einen einzigen Schlüssel für jedes Modell festgelegt; dass Schlüssel können mehrere Felder, aber Sie können nur eine vom Designer Standpunkt haben. Nicht sicher manuell bearbeiten xml oder Code nur Zuordnung.

Sie können ein Feld als Identität gesetzt und keinen Schlüssel, wenn Sie einen Composite- und Ersatzschlüssel auf der gleichen Tabelle benötigen. Die Identität (Id) Feld wird nicht durch die Object oder ObjectStateTracker verwendet werden, sondern erhöht und sein abfragbaren ganz gut aber.

Andere Tipps

Ich habe Probleme mit EF4 und zusammengesetztem Schlüssel hat. Es unterstützt keine Spalten als Komponenten in mehr als ein Schlüssel in einem Join-Tabelle verwendet werden.

Sehen Sie meine vorherige Frage Mapping Verbundfremdschlüssel in einem viele-viele-Beziehung in Entity Framework für weitere Details. Die Muttern davon ist, dass, wenn Sie eine Tabelle beitreten (beschreibt eine viele-viele-Beziehung), wo beide der Beziehungen einen gemeinsamen Schlüssel verwenden, erhalten Sie eine Fehlermeldung erhalten, wie

  

Fehler 3021: Problem bei der Zuordnung   Fragmente ...: Jede der folgenden   Spalten in der Tabelle Page-View wird abgebildet   mehrere konzeptionelle Seite Eigenschaften:   PageView.Version wird abgebildet   (PageView_Association.View.Version,   PageView_Association.Page.Version)

Der einzige Weg, um es war die Säule zu duplizieren, die den Zweck besiegt sie überhaupt dort zu haben.

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top