2 Stimmen

Entity Framework Code First POCOs und Gründe, warum / warum nicht Setup Beziehungen?

Ich war mir nicht sicher, wie ich meine Frage wirklich formulieren sollte, und werde sie vielleicht aufgrund einiger Rückmeldungen ändern.

Wann ist es sinnvoll, Referenzbeziehungen (in meinen POCOs) so einzurichten, dass ich einen übergeordneten Datensatz von einem untergeordneten Datensatz aus nachschlagen kann oder umgekehrt? Ist es sinnvoll, immer eine Möglichkeit zu haben, ein Element oder eine Sammlung von Elementen "rückwärts" nachzuschlagen? Ich weiß, dass dies stark von meiner Anwendung abhängt, aber ich möchte mich nur vergewissern, bevor ich mit der Gestaltung meiner Anwendung beginne. Nehmen wir also an, ich habe zwei Tabellen: Staaten und Länder. Staaten haben eine Beziehung zu Ländern (viele-zu-eins) und umgekehrt (eins-zu-viele). Meine Klasse für Staat hätte eine Eigenschaft für Land und meine Klasse Land eine Eigenschaft für eine Sammlung von Staaten. Das ist ein ziemlicher Standard.

In diesem Beispiel kann es sinnvoll sein, einem Land zu erlauben, die zugehörigen Staaten nachzuschlagen. Fällt jemandem ein Fall ein, in dem ich mich nicht um diese Assoziation kümmern muss, damit ich nicht den Overhead habe, die Elemente für eine Sammlung oder ein einzelnes Element zu laden?

2voto

Ladislav Mrnka Punkte 355028

Es handelt sich eher um eine Design-Entscheidung für Ihre Entitäten. Wenn Sie zuerst Code verwenden, benötigen Sie immer eine Navigationseigenschaft auf mindestens einer Seite um eine Beziehung in der Datenbank zu erstellen. Sie können mit einem einfachen Ansatz beginnen und die Eigenschaft auf einer Seite definieren, wo sie sinnvoll ist, und sie der anderen Seite nur hinzufügen, wenn Sie sie irgendwo brauchen.

Es gibt Situationen, in denen man weiß, dass man niemals mit einer untergeordneten Entität ohne ihre übergeordnete Entität arbeiten wird (dies führt zu einer Theorie über Aggregationswurzeln, bei der eine untergeordnete Entität nicht ohne ihre übergeordnete Entität existieren kann). In einem solchen Fall braucht das Kind keine Navigationseigenschaft zum Elternteil zu haben.

Erwarten Sie in Ihrem Szenario die Zusammenarbeit mit State ohne Country zu der sie gehört? Wenn ja, ist es wahrscheinlich, dass Sie wissen möchten, welche States a Country enthält, aber gleichzeitig würden Sie wahrscheinlich gerne wissen, welche Country a State gehört, so dass die Definition der Navigationseigenschaft auf beiden Seiten sinnvoll ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X