CQRS和域模型

Jul*_*ira 0 domain-driven-design repository-pattern cqrs

我需要使用CQRS实现一个项目,但是我对哪些实体获得相应的命令和查询类有疑问.

如果我有A,B和C类,那么A是我的聚合根,其他是我的聚合中的子实体,哪些类应该有命令和查询类?

我的意思是,我应该有QueryA,QueryB和QueryC,还是应该只有QueryA,例如,它会使用延迟加载来带来子数据?

对于存储库,正如我对域模型的理解,我只考虑RepositoryA(对于我的聚合根).

Den*_*aub 7

查询不是每个聚合,它们是基于每个视图.例如,假设您有一个客户帐户并想要显示

  1. 帐户列表
  2. 帐户详细信息与保密信息(例如信用卡详细信息)
  3. 帐户详细信息没有保密信息

这将是三个查询,每个查看一个查询.并且通常没有像懒惰装载这样的痛苦的事情.您需要某些特定视图的信息,或者您不需要.

命令也不是每个聚合.您可以获得每个行为的命令.像OpenAccount,CloseAccount,MergeAccounts等.