2013-03-24 8 views

Antwort

77

Beiden Zuordnungen schaffen werden genau das gleiche Datenbankschema mit einem Nicht-Nullable-Fremdschlüssel SomethingId und eine referenzielle Einschränkung zwischen den zwei verwandten Tabellen.

Die erste Zuordnung mit MapKey wird verwendet, wenn Sie den Fremdschlüssel nicht als Eigenschaft in Ihrer Modellklasse verwenden möchten. Die Art der Assoziation wird in diesem Fall Independent Association genannt. Sie würden das zweite Mapping mit HasForeignKey anwenden, wenn der Fremdschlüssel eine Eigenschaft im Modell ist. Dieser Typ wird Foreign Key Association genannt. In vielen Szenarien ist es einfacher, mit Fremdschlüsselzuordnungen zu arbeiten, aber viele Menschen betrachten es als weniger sauber, ein relationales Artefakt (einen Fremdschlüssel) in der Objektwelt zu haben und bevorzugen daher unabhängige Zuordnungen.

Hier sind einige Hinweise über die beiden Arten von Verbänden und ihre Vor- und Nachteile:

+0

„Viele Leute denken, dass ein objekt-relationales Mapping tool soll die objektrelationale Impedanzfehlanpassung lösen, anstatt Sie dazu zu zwingen oder gar zu ermutigen, Ihr Objektmodell so aussehen zu lassen, als wäre es d speziell im Hinblick darauf, wie die Daten persistiert werden. " Dort habe ich es für dich repariert. –