我偶然發現了StackOverflow和Google等網站,但無法理解如何實現它的概念。The Infamous Entity Framework - Aggregate Root Issue
這裏我有一個非常非常簡單的模型:一個Item
和一個ItemActivity
。很明顯,Item
是聚合根,而ItemActivity
是一個實體。
因此,根據DDD原則,我應該只實施ItemRepository
。除了它自己的-let說 - CRUD操作ItemRepository
也應該管理它的子實體,ItemActivity
's,也是CRUD操作。
這裏來了一些執行問題:
- 我應該在域或 庫實現子實體操作。
- 加載與項目相關的所有子實體或導航到它們 與Entity Framework一致。加載根
.include(..)
將 做的工作。但是更新ItemActivity
甚至 刪除ItemActivity
?從集合中刪除它們不會保留 。 - 假設我必須在一段時間內找到所有活動。 如何實現這樣的查詢,而我無法通過
ItemActivity
查詢或更糟糕的是根本不存在任何ItemActivityRepository
。 - 是否有涵蓋此主題的示例。有很多關於它的文章 ,很多答案沒有具體的代碼和理論 覆蓋範圍,但請,有沒有真實樣本。我曾在 微軟西班牙N層DDD示例,但它不夠詳細。
此致敬禮。
不要錯誤地將聚合根視爲兒童對象的容器。在定義任何Domain對象時,忘記與持久性相關的任何事情。這包括忘記關係數據庫原則。 – MikeSW