Ich versuche, DDD im folgenden Muster zu folgen.DDD - Geschäftsentscheidungen basieren auf Datenbanklogik
Controller-----DataContract----> Domain Layer (DDD)
Controller-----Domain Object---> Repository---Entity--->EntityFramework
Wie Sie im obigen Diagramm zu sehen, die Domänenschicht ist unabhängig Entscheidungen zu treffen, aber in meinem Fall, sind die meisten der Geschäftsentscheidungen im laufenden Betrieb genommen. Zum Beispiel
if(Account Number Associated?)
Load CustomerDetails //A database call is needed
....
.....
if(Has customer another loan)
.....
.....
Load other loan details //A database call is needed
.....
.....
if(Was that repaid?)
....
....
Load collateral details //A database call is needed
.....
.....
Calculate collateral details and return.
else
Load other data //A database call is needed
else
Load other data //A database call is needed
else
Load other data //A database call is needed
Wie Sie das obige Beispiel zu sehen, wird die Anwendung macht viele Geschäftsentscheidungen im laufenden Betrieb von Datenbank Anrufe. Da Domain-Layer sollte nicht von der Repository-Schicht abhängen, weiß ich nicht weiter.
I Anwendungsdienst für Datenbank-Anrufe verwenden können, aber dann Domain-Layer würde jede Logik darin nicht haben. Die gesamte Logik würde in den Application Service gehen.
Bitte helfen Sie mir dabei.
-Pandian
Hallo @ VoiceOfUnreason, Danke für die Hilfe. Die ersten beiden Ansätze sind in meinem Fall nicht möglich. Könnten Sie mich bitte auf einige GitHub/Code-Beispiele für diese Art von "Domain Service" hinweisen? Auch wenn Sie sagen "Anwendung bietet die Implementierung" bedeutet "** Application Service ** bietet die Implementierung" richtig? – Pandiarajan