我無法理解如何訪問聚合根的子實體。從我的previous question的答案我現在明白,我需要確定我的模型的聚合根,然後只設置處理這些根對象的存儲庫。ASP.NET MVC Action方法如何訪問聚合根的子實體?
所以說我有一個包含項目的訂單對象。項目必須存在於Order中,因此Order是聚合根。但是如果我想在我的網站中包含OrderItem詳細信息頁面呢?此頁面的URL可能類似於/ Order/ItemDetails/1234,其中1234是OrderItem的ID。然而,這將需要我直接通過ID檢索項目,並且因爲它不是一個聚合根,我不應該有一個OrderItemRepository可以通過ID來檢索OrderItem。
因爲我想使用獨立於Orders的OrderItems,這是否意味着OrderItem實際上不是Order的集合,而是另一個聚合根?
我會考慮OrderItem作爲一個值對象,因爲它沒有訂單的上下文沒有真正的mening。 – alexn 2011-05-18 07:30:11
OrderItem是一個實體而不是值對象,因此它必須具有標識。從業務角度來看,2個同等數量產品的OrderItems可能不相等 – xelibrion 2011-05-18 09:25:36
您也可以將您的問題發佈到Google DDD/CQRS組,該組具有非常活躍的社區https://groups.google.com/forum/#!forum/dddcqrs – xelibrion 2011-05-18 09:27:54