我檢查了這些帖子,但沒有找到一個合適的答案:如何建立基於元數據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中的域服務的依賴。對我來說,這感覺應該不是,因爲查詢和命令端之間的分離。
這是一個可以接受的方式來處理這個問題,還是有另一種方法分隔雙方?