首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >持久化通过域封装,还是通过存储库持久化?

持久化通过域封装,还是通过存储库持久化?
EN

Stack Overflow用户
提问于 2010-12-02 15:46:20
回答 2查看 358关注 0票数 1

如果我的领域模型不应该知道/关心存储库,那么像.UpdateOrder(...)这样的行为如何封装CRUD,以及与Repository的接口呢?通过域名服务?

好的,那么我的存储库有一个有效的CRUD,它与我的.UpdateOrder(...)一起使用。这很好。但是我不希望有人在存储库上使用更新方法,我希望他们在实体上进行行为(使用UpdateOrder()代替)。我更希望我的领域模型满足不变量的方式--通过它的设计(私有集属性等)--我的存储库不公开“更新”/persisting实体的替代方法。

这仅仅是一个访问修饰符问题,由我在Repo public中没有更新方法来解决。还是有更好的答案?请帮助我DDD忍者。

EN

Stack Overflow用户

回答已采纳

发布于 2010-12-03 14:48:48

DDD的严格顺序是:

代码语言:javascript
运行
复制
var entityRepository = MyServiceLocator.Get<IEntityRepository>();
var myEntity = entityRepository.Load(<some criteria>);
myEntity.Change(something);
entityRepository.Save(myEntity);

存储库始终负责检测/持久化实体中的所有更改。

(顺便说一句,我假设你的实体是一个聚合根)

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4336819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档