回答
我沒有我的Domain Driven Design by Evans副本的那一刻,這是我想轉了明確的答案,但在這個dddstepbystep參考指出:
區內的聚集存在 彙總根。聚合根目錄是 父實體對所有其他 實體和值對象在 聚合。
一個儲存庫來操作時的 聚合根
所以,是的,根據這個定義去,你的分類信息庫應該是負責任的持久化類聚集內所有實體。
儘管如此,我的評論中的問題仍然存在 - 您確定類別真的是一個有用的聚合根嗎?事實上,你問這個關於堅持產品的問題表明你經常認爲他們與他們的產品類別分離,或者至少希望能夠在他們的產品類別之外處理某些產品。
這很有趣,因爲產品必須有一個類別,否則它將不存在。所以,我認爲由於這種關係類別是聚合根。如果我錯了,請糾正我的錯誤! 我認爲Person和Address也具有相同的關係,其中Person是聚合根。 – 2010-01-25 22:12:25
@john看看這個帖子在這裏:http://www.lostechies.com/blogs/jimmy_bogard/archive/2008/05/20/entities-value-objects-aggregates-and-roots.aspx他談到與總量,根源,實體和價值。關鍵的說法是根實體是可以直接從其他聚合中引用的聚合中唯一的實體。這並不是說你的造型是錯誤的,只是對我來說似乎很古怪 - 但我可能完全錯了! – 2010-01-25 22:45:06
我認爲在這種情況下,產品應該有一個單獨的代表。因爲顧客可以在他的購物車中添加產品。 user.Cart.AddProduct(產物)。如果將Category設置爲聚合根,那麼我應該從Category對象中遍歷關係。 – 2010-01-25 23:00:33
- 1. 存儲庫模式中的聚合根
- 2. 簡單的聚合根和存儲庫
- 3. 存儲庫模式 - 聚合根
- 4. DDD聚合根/存儲庫結構
- 5. 存儲庫模式:刪除聚合根
- 6. P2存儲庫聚合器
- 7. 如何聚合存儲庫?
- 8. 數據庫和聚合根的存儲庫模式
- 9. ASP.NET MVC /實體框架:通過聚合根存儲庫訪問聚合對象
- 10. 域驅動設計:每個聚合根的存儲庫?
- 11. 域驅動設計中的存儲庫和聚合根
- 12. 最佳聚合根和數據存儲庫建議
- 13. 應該如何表示將聚合根添加到存儲庫?
- 14. 通用Vs聚合根個人存儲庫
- 15. Spring數據存儲庫聚合
- 16. 如何確定添加到存儲庫的聚合根的標識號?
- 17. 如何存儲樹聚合
- 18. 如何實現聚合根存儲庫添加與EF的子實體
- 19. 顛覆合併 - 「擁有不同的存儲庫根目錄」
- 20. 我應該在EF 4.1 + LINQ中使用DDD聚合根存儲庫嗎?
- 21. 事件源聚合根可以訪問事件採購存儲庫嗎?
- 22. 存儲庫模式和聚合根模式以及實體框架
- 23. 倉庫模式聚合和聚合根與實體框架4.0
- 24. 使用存儲庫模式保存複雜聚合
- 25. 存儲庫模式:每個聚合或每個基礎數據存儲的存儲庫?
- 26. 可以聚合根實體調用庫
- 27. 實體vs聚合vs聚合根
- 28. 聚合和聚合根困惑
- 29. 模擬聚合器的消息存儲
- 30. 在Mercurial中,如何組合無關的存儲庫,只留下一個根?
我的DDD副本在家裏,所以我會留下其他人的存儲庫/聚合根問題,但首先,你確定Category是否真的是聚合根?只具有一對多關係並不指定根。以此爲根將意味着您只能檢索某個類別中的所有產品。而且,像Category這樣的東西通常會被模擬爲一個值,而不是實體對象。 – 2010-01-25 21:54:19