我正在構建我的應用程序,其中包括存儲庫模式,聚合根和工作單元。我正在使用Entity Framework5作爲ORM。存儲庫模式和聚合根模式以及實體框架
我處於這種情況,我不知道如何繼續添加聚合根,並且與不是聚合根的實體有外鍵關係的新實體。
我不確定我是否理解了我以前的陳述,但讓我在這裏舉一個例子。
人表在DB(這是一個總的根在我的應用程序)
- 名稱
- 地址行1
- CountryID
國表(這不是因爲我可能永遠不需要獨立查詢它們)
- CountryID
- 國家名稱
在我的應用我有PersonsRepository它實現了一個通用的存儲庫,其中T是一個聚合根。
現在,當我在我的代碼中創建一個新人時,我需要將Country添加到Person對象的導航屬性中。如果我創建一個新的Country對象並將其分配給Person的Country屬性並嘗試保存Person對象,則EF將引發錯誤。我無法查詢Countries表,因爲它不是我的Aggregate根。
嗯,這不是我的實際情況,但這是我想要克服的。我應該如何從這裏出發?
我想到的一個想法是創建一個通用的只讀存儲庫,它將用於查詢數據庫而不是修改數據庫,是繼續執行還是出現錯誤。
在此先感謝您的回覆和閱讀長篇文章。
什麼錯誤EF拋出? – 2013-02-10 20:24:36
它引發「無法投人Person對象鍵入國家」,我認爲這是完全有效的,爲什麼我應該創建一個新的國家對象時,它是一個外鍵在DB中。它工作得很好如果我使用datacontext獲取Country,並在創建它時將其分配給Person對象。 – 2013-02-10 23:45:47