Oto prawdziwy przykład, który doprowadzi do mojego pytania: Mam AddCommentToArticleCommand, który ma ArticleId, tekst komentarza i adres e-mail. To polecenie:Zapisywanie zmian w jednostkach domen
- używa repozytorium artykułu, aby uzyskać artykuł (który jest podmiotem domeny)
- jeśli artykuł nie istnieje, to zwraca article.AddComment (commentText EMAILADDRESS), który doda komentarz do tego artykułu i zgłasza wyjątek, gdy nie może (z powodu nieprawidłowego formatu wiadomości e-mail, artykuł został zamknięty, komentarz nie został wypełniony lub zbyt długo itp.) ...
- , ale teraz nie wiem, jaki jest najlepszy sposób na zapisanie dodanego komentarza ?
Czy powinienem zrobić coś takiego jak artykułRepository.Save (artykuł)? Ale dlaczego warto zapisać artykuł, jeśli dodano tylko komentarz? Czy mogę zrobić coś takiego jak articleRepository.SaveComment (komentarz), który zapisze tylko komentarz? Albo jakie podejście podejmiesz tutaj?
Dzięki!
Pomogłeś mi z twoim komentarzem, ponieważ zdałem sobie sprawę, że robię rzeczy, które już istnieją. Więc zmieniłem podejście: używam framework entity z kodem first; i zaimplementowany wzór jednostki pracy. Teraz kontekst EF zachowuje zmiany dla mnie. Dzięki za opinie! –
@Dmitry +1 to bardzo ważny punkt. W moich szczególnych okolicznościach nie mogę przyjąć żadnych założeń dotyczących możliwości użycia ORM (może to nawet nie być ORM), więc sensowne jest dla mnie wdrożenie takich rzeczy, jak śledzenie zmian w domenie. Jeśli jesteś wystarczająco związany z implementacją ORM, że możesz niezawodnie korzystać z jej funkcji, to oczywiście ma to wiele sensu :) – MattDavey
Właściwie moja domena nie jest zależna od ORM ani niczego innego. To centrum architektury cebuli. Jednostka pracy wokół niej jest zależna od ORM i używa jej kontekstu do śledzenia zmian. Ale domena ma tylko logikę domeny ... –