Ich arbeite derzeit mit einer Codebase, die das Anemic Domain Model verwendet, und ich versuche, mehr Logik in die Domänenmodelle in Richtung Domänenmodell und Domäne zu verschieben Driven Design, aber ich habe mit dem folgenden Problem zu kämpfen.So legen Sie private Felder in einem Domänenmodell im Repository fest
Ich habe ein Domain-Modell namens Jobs, die wie folgt aussieht,
public class Job
{
private DateTime _someOtherDate;
private DateTime _lastUpdated;
// this may be called from many different services
public void SetLastUpdated()
{
_lastUpdated = DateTime.UtcNow;
}
}
An einem gewissen Punkt in der Zeit, während der Bearbeitung ein Job, den ich die Aufgabe der zuletzt aktualisiert Datum zu diesem bestimmten Zeitpunkt festlegen möge. Um dies zu tun, habe ich einen öffentlichen Setter dafür geschaffen, wie Sie oben sehen können.
Ein Problem tritt auf, wenn ich den Job aus der Datenbank in meinem Repository zurückziehe, da ich jetzt keinen öffentlichen Setter für dieses Feld habe, weil ich das auf SetLastUpdated()
beschränkt habe.
Kann jemand bitte beraten, wie ich diese Eigenschaft in der Repository-Implementierung beim Abrufen des Jobs festlegen kann, aber nicht von dem Dienst, wo es auf Aufruf SetLastUpdated()
beschränkt ist.
Update 1) Ich habe die Frage aktualisiert, da die Verwendung des Startdatums ein schlechtes Beispiel war.
Update 2) Aus den Antworten, die einzige Art, wie ich dies, indem sie nicht mit AutoMapper im Repository getan zu sehen ist, einen Konstruktor auf die Jobklasse Hinzufügen _lastUpdated für die Einstellung, und diese zu verwenden, wenn der Job Konstruktion in der Job-Abrufmethode des Repositorys zurückgegeben werden.
Welche Art von Muster verwenden Sie, um Ihre Domänenmodelle zu hydratisieren? Verwenden Sie ein ORM oder Erinnerungsstücke? Wie sehen Ihre Konstrukteure aus? – arootbeer
Ich verwende AutoMapper, um die Entity Framework-Modelle den Domänenmodellen zuzuordnen. Hier wird das Startdatum festgelegt. Auf den Domänenmodellen gibt es keine Konstruktoren, sie sind vom Design anämisch. – Jonathan
Im Gegensatz zu Forum-Sites verwenden wir nicht "Danke" oder "Jede Hilfe geschätzt" oder Signaturen auf [so]. Siehe "[Sollen 'Hallo', 'Danke', 'Slogans' und 'Anrede' aus Posts entfernt werden?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts). –