2010-05-18 76 views
1

所以,我一直在尋找這個問題的答案,但我無法找到任何是否有ORM允許「插件」擴展數據庫?

我有一個實體框架模型(MyModel1) - 現在,我們會說這包含了一個「用戶」表

這是一個很大的應用程序,具有引用的「地址」項目

的地址項目包含一個實體框架模型(MyModel2)的一部分,這包含一個用戶表和地址表(指向相同的數據庫

主應用程序有一個控件,編輯用戶,並在該控件l它具有「地址」項目中實際存在的「地址」控件。

爲了做到這一點,用戶控件將用戶對象傳遞給地址控件,但是,由於已經傳遞的用戶屬於MyModel1而不是MyModel2,所以必須加載另一個用戶對象,那麼它可以是用過的。

這是不理想的,因爲我不得不加載用戶兩次。有沒有辦法說,MyModel2擴展MyModel1,它有效地增加了一個關係到「用戶」。或者是否有一個ORM能夠更好地處理這個問題?甚至是一種能夠更好地處理這種情況的設計模式?

+0

你在使用哪個平臺? Java,.NET還是其他? – 2010-05-18 20:31:55

+0

對不起,ASP.Net c# – Paul 2010-05-18 20:33:02

回答

0

我發現功能NHibernate這似乎給我一個負載在數據層是如何放在一起,通過一些嚴重的瘋狂的代碼,我能夠在一個插件的一種方式擴展實體,非常酷的更多的控制

-1

這聽起來像今天你有一個項目是UI,業務邏輯和數據訪問邏輯的混合。

更好的方法是將數據訪問層放入與業務邏輯和用戶界面分離的單個項目中。創建一個包含用戶和地址的EDMX,並提供一個可用於處理整個過程的ObjectContext。

請看看Repository模式。

+0

好吧,所以這個例子是一個糟糕的例子 - 但可以肯定的是,實際上並不可能將用戶和地址放入同一個edmx文件。你所描述的是理想的,但在這種情況下是不可能的 – Paul 2010-05-19 17:46:26