如果我的领域模型不应该知道/关心存储库,那么像.UpdateOrder(...)这样的行为如何封装CRUD,以及与Repository的接口呢?通过域名服务?
好的,那么我的存储库有一个有效的CRUD,它与我的.UpdateOrder(...)一起使用。这很好。但是我不希望有人在存储库上使用更新方法,我希望他们在实体上进行行为(使用UpdateOrder()代替)。我更希望我的领域模型满足不变量的方式--通过它的设计(私有集属性等)--我的存储库不公开“更新”/persisting实体的替代方法。
这仅仅是一个访问修饰符问题,由我在Repo public中没有更新方法来解决。还是有更好的答案?请帮助我DDD忍者。
发布于 2010-12-03 14:48:48
DDD的严格顺序是:
var entityRepository = MyServiceLocator.Get<IEntityRepository>();
var myEntity = entityRepository.Load(<some criteria>);
myEntity.Change(something);
entityRepository.Save(myEntity);存储库始终负责检测/持久化实体中的所有更改。
(顺便说一句,我假设你的实体是一个聚合根)
https://stackoverflow.com/questions/4336819
复制相似问题