我检查了这些帖子,但没有找到一个合适的答案:如何建立基于元数据CQRS查询不违反命令和查询侧的分离
CQRS: Read model built on demand?
CQRS: business logic on the query side
我被基于CQRS的架构困住了。我知道查询端应该有一个精简的数据访问层,但在我的项目中,我需要根据来自其他域对象的元数据调整查询。
在互联网上的几篇文章中,报表数据库中每个视图都有一个表。因此,像'SELECT * FROM Tablename WHERE ...'这样的SQL命令就是您所需要的。这在这里不合适,因为查询返回的列应该是可定制的(通过列过滤器)。
这应该工作如下:
- 查询由客户机调用,含有行的过滤器ID(WHERE部分)以及用于列另一个过滤器ID(SELECT部分)。
- 的QueryHandler建立了基于基于两个滤波器
- 查询是针对数据库执行,并将结果返回给客户端
的ID域服务中提取信息的SQL查询什么我很苦恼的是在步骤2中的域服务的依赖。对我来说,这感觉应该不是,因为查询和命令端之间的分离。
这是一个可以接受的方式来处理这个问题,还是有另一种方法分隔双方?