Ich habe meinen Code zuerst, SQL-Datenmodelle (mit EF Core 1.1), die verwendet werden, um mein Schema / Tabellen zu modellieren. Allerdings habe ich auch Domänenobjekte, die teilweise oder vollständig zugeordnete Versionen dieser SQL-Datenmodelle sind, im Wesentlichen haben sie die gleiche Form wie die SQL-Datenmodelle.
Nun würde ich gerne wissen, wie Kaskadierungen am besten zu handhaben sind, wenn komplexe Objekte außerhalb des Kontexts ihres verfolgten Kontextes verändert werden. Wenn Sie bedenken, dass alle meine Domain-Operationen nicht auf der verfolgten Entität stattfinden, finden sie auf dem Domain-Objekt statt.
Kurz gesagt, das ist, was ich versuche zu erreichen.
1) Leseeinheit aus der Datenbank.
2) Zuordnung von Entität zu Domänenobjekt.
3) Updates auf das Domänenobjekt anwenden.
4) Ordnen Sie das Domänenobjekt der Entität zu.
5) Wenden Sie eine Datenbankaktualisierung auf die zugeordnete Entität an, die dazu führt, dass die Entität und die zugeordneten relativen Entitäten aktualisiert werden.
Übrigens haben die Entitäten und das Domänenobjekt die typischen Beziehungen von vielen zu eins, denen man begegnen könnte. Was ist der beste Weg, dies zu tun?
Was ist der beste Weg, dies zu tun?
Ich denke, der beste Weg, dies zu tun, besteht darin, das Problem von vornherein zu vermeiden, indem ein Framework verwendet wird, das flexibel genug ist, um Domänenobjekte direkt auf die Datenbank abzubilden, ohne allzu viele Kompromisse eingehen zu müssen ein explizites Persistenzmodell im Code.
im Wesentlichen haben sie die gleiche Form wie die SQL-Datenmodelle
Wenn Sie darüber nachdenken, bedeutet das, dass Sie zwischen Ihrem Domänenmodell (Objektmodell) und dem relationalen DB-Modell denselben Impedanzunterschied haben würden als zwischen Ihrem Domänenmodell und dem expliziten Persistenzmodell.
Dennoch gibt es eine elegante Möglichkeit, das Mapping durchzuführen, das Vaughn Vernon in Modellierung von Aggregaten mit DDD und Entity Framework beschreibt. Im Grunde läuft es darauf hinaus, Zustände in expliziten Statusobjekten zu speichern, die Taschen von Gettern / Setter sind, die von realen Domänenobjekten eingekapselt und verwaltet werden. Diese Zustandsobjekte werden dann mit EF abgebildet.
z. entnommen aus dem oben verlinkten Artikel
%Vor%