将DDD与C#4.0一起使用,模型是否应该引发由存储库/ UnitOfWork处理的更改事件?

时间:2011-10-19 19:52:41

标签: c# domain-driven-design repository unit-of-work

我正试图了解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的集合实现发送一些事件。

此方案将解析域层用户对摆弄存储库的需求。

这听起来好吗?

0 个答案:

没有答案