关于领域驱动设计中的聚合根及仓库的一些疑问

findshine 2016-11-24 11:01:51
直接说问题。

比如一个订单是聚合根,含订单明细(实体),地址信息(值类型),那么这些信息如果需要持久化到数据库的时候,比如数据库是订单表和明细表还有地址表
这些都是由仓储层来完成存放和读取的么?

另外仓储的上下文是指什么,一直不太明白
...全文
463 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
findshine 2017-04-18
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
过分滥用“领域”名词儿是害人的,特别是将应用领域跟计算机领域浑浑噩噩地分不清的时候。 当把数据实体保存到数据库,这就是“DAL”的概念,不跟任何业务领域扯上关系。比如说
Using(var db = OpenMyDB())
{
    db.Save(obj);
}
是将内存中的我的 obj 对象同步 insert 或者 update 到数据库,这就是数据库引擎要做的事情。包括你使用 ADO.NET 引擎来执行 sql 语句也是一样的概念。 而在设计上,这里的“数据库”不是什么业务领域概念,是纯粹的计算机领域概念。所以我看了“领域驱动设计”的一些书之后,觉得堆砌得很臃肿、不清楚、误导读者。 滥用一些非常雷人的词儿来吸引小孩儿,把技术的层次分不清楚,这是一些“模式”书籍的毛病。
哈哈 您总说的这么有道理呢
  • 打赏
  • 举报
回复
过分滥用“领域”名词儿是害人的,特别是将应用领域跟计算机领域浑浑噩噩地分不清的时候。 当把数据实体保存到数据库,这就是“DAL”的概念,不跟任何业务领域扯上关系。比如说
Using(var db = OpenMyDB())
{
    db.Save(obj);
}
是将内存中的我的 obj 对象同步 insert 或者 update 到数据库,这就是数据库引擎要做的事情。包括你使用 ADO.NET 引擎来执行 sql 语句也是一样的概念。 而在设计上,这里的“数据库”不是什么业务领域概念,是纯粹的计算机领域概念。所以我看了“领域驱动设计”的一些书之后,觉得堆砌得很臃肿、不清楚、误导读者。 滥用一些非常雷人的词儿来吸引小孩儿,把技术的层次分不清楚,这是一些“模式”书籍的毛病。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧