2012-06-20 40 views
1

我有我的數據庫中下表:SQL Server架構名稱來命名空間CLR在EF代碼生成

Business.Profiles 
User.Profiles 

其中「企業」和「用戶」的模式。

當通過Ado.Net的DbContext發生器產生的DbContext(添加代碼生成項目),我得到的代碼兩類:

Profile 
Profile1 

理想的情況下,我會喜歡的模式名稱轉換爲:CLR命名空間但沒有發生。有什麼辦法強制這樣的事情嗎?我如何處理這個問題?

回答

2

DbContext Generator僅使用在EDMX文件中指定的名稱,所以我猜你在EDMX中定義了ProfileProfile1實體。

類必須與EDMX中的實體具有完全相同的名稱,並且不能將具有相同名稱的兩個類映射到相同的EDMX模型。 EF不支持它,因爲POCO類按照只使用類名稱(EF不在映射中使用CLR名稱空間)的約定進行映射。正因爲如此,你無法達到你想要的。簡單的解決方法是簡單地命名您的實體EDMX UserProfileBusinessProfile

+0

我一直髮現這是一個相當有問題的組織缺陷。除了解決方法外,模式通常用於數據庫命名空間;在名稱空間類和模式對象之間具有1對1的映射關係會更好。 – Dan

相關問題