在DDD的上下文中,總是說存儲庫只能查詢聚合根。聚合根然後允許訪問聚合中的其他實體。但是,如何查詢聚合模型中的實體?查詢除根以外的其他集合中的實體
假設Orders聚合的情況。訂單是根,並有一個細節行列表,它引用了一個產品(這是另一個集合的根),並具有其他屬性,如數量
現在,假設我需要列出或排序引用的行到特定產品,生成不同服務使用的報告,如計算產品訂購請求的平均項目數。
搜索每個Oder,然後列出所有行並選擇我感興趣的行,聽起來不切實際。 Orders知識庫中的getLinesByProduct()聽起來更方便,但會將線暴露在聚合中。
如何爲此查詢建模?
也許問題是我在查詢我的Command模型,我應該有一個(非規格化的)查詢模型,其中的細節行是實體,包含所有需要的信息?
更新:我發現了一個密切相關的問題[「DDD:實體的集合和存儲庫」](http://stackoverflow.com/questions/1356430/ddd-entitys-collection-and-repositories)。那種情況下的結論是,這些實體應該是自己的總和。塔爾強化了我的直覺,在我的情況下,同樣的解決方案適用。 – pablochacin 2012-08-01 11:12:42
報告是核心應用程序的一部分還是單獨的應用程序? – casablanca 2012-08-02 01:56:22