我是域驱动设计的新手。我们正在创建实体对象来表示我们的模型。并表示具有相同模式的数据库表。但我对摘要对象有点困惑。
产品是实体和数据库表。 状态是一个实体和数据库表。
我希望得到一个这样的摘要列表:
StateName ProductName SellCount
---------------------------------------
State-1 Laptop-ESD14 145
State-1 IPhone-FMNL8 1220
State-1 Book-OYLG4 7789
这是一个统计对象,实际上这是一个关系选择查询结果。我在哪里可以存储这个对象。这是实体或价值还是ViewModel?
如果这是一个视图模型,我无法将其存储在Domain层中,我可以存储在Application Layer中。在这个stuation中如何从数据库中获取此对象? (我也在使用像Entity Framework这样的ORM工具)
答案 0 :(得分:3)
这是实体或价值还是ViewModel?
ViewModel不是与DDD相关的术语,但如果只是readonly,则看起来这可能是Read Model。从那里,您可以为它编写一个简单的专门“报告”存储库,或者使用完整的CQRS路径。
答案 1 :(得分:2)
DDD中没有统计对象。你真的应该删除所有的实现细节,比如要创建的表等,直到整个域模型完成。
从DDD的角度来看,如果使用复杂的连接等加载对象并不重要,它仍然只是一个实体或一个值对象。
在DDD中,我们使用存储库模式只是为了能够抽象出那些细节,只关注构建一个代表我们的利益相关者愿望和语言的领域模型。