Используя DDD с C # 4.0, должна ли модель вызывать события изменения, которые будут обрабатываться репозиторием / UnitOfWork? - PullRequest
0 голосов
/ 19 октября 2011

Я пытаюсь разобраться с DDD, и на данный момент у меня есть некоторые доменные классы и репозитории.

public class Entity1
{
    public int SomeValue {get;set;}
    public ICollection<Entity2> SomeEntities {get;}

    public void SomeMethod ();
}

public class Entity1Repository
{
    public void Add (Entity1 entity) {...}
    ...
}

У меня также есть интерфейс единицы работы

public interface IUnitOfWork
{
    void Commit ();
    void Rollback ();
}

Не совсем убежден, что IUnitOfWork должен быть передан конструктору хранилища, как мне кажется, по крайней мере, мне кажется, что он делает хранилище не столь неосведомленным о постоянстве.события домена, отправленные из объектов домена, чтобы указать, что они изменены.Единица выполнения работы и, почему нет, хранилище будет прослушивать эти события и действовать соответственно.

Кроме того, я думал о том, чтобы реализация коллекции ICollection отправляла также какое-то событие.

Эта схема избавит пользователя от доменного уровня от необходимости возиться с хранилищем.

Это звук?

...