将事务脚本模式与DDD / CQRS混合

时间:2010-06-14 22:08:27

标签: asp.net-mvc domain-driven-design cqrs

在这种情况下,为了支持我们的遗留系统,我们需要在用户登录时插入表。这基本上是一个CRUD操作,因此创建存储库/实体/没有任何意义命令/事件,因为这根本不与任何业务规则相关联。创建CQRS命令的唯一好处是此数据库写入可以在该模型下异步发生。哪条路线更好?

  • 使用CQRS,然后调用存储过程。 在处理该命令时?
  • 直接在控制器中调用数据库(我使用的是asp.net mvc)

1 个答案:

答案 0 :(得分:3)

如果您正在使用(和持久化)事件进行可能的回放,那么将遗留数据库写入事件处理程序(想想“网关”)是有意义的。如果您将来需要重播此事件,您可以交换一个不重新插入记录的虚假处理程序。

您的控制器实际上应该只是HTTP请求和域名命令之间的转换层。写入数据库(即使是传统的,非域访问)在那里也没有意义,恕我直言。将逻辑放在事件处理程序中会使交互非常明确。