2010-12-19 460 views
5

我在VS 2010解決方案中有兩個項目:Data和DataForm。在我的Data項目中,我有同一個數據模型的Code first和Database first版本(例如DataPoco和DataDb)。這些類在它們內部具有相同的確切實體名稱,等等......這兩個版本分別位於它們自己的名稱空間中:DataDb在Data中,DataPoco在Data.Poco中。實體框架代碼優先和數據庫優先Bug /衝突

在我的DataForm項目中,我有以下代碼:

DataPoco context = new DataPoco(); //Data.Poco.DataPoco 
foreach(var u in context.Urls)  //Data.Poco.Url 
{ 
    //do stuff with u. 
} 

我得到時context.Urls枚舉(並加載由於懶加載)以下錯誤:

找不到'Data.Url'的概念模型類型。

爲什麼我會得到一個錯誤有關的實體在其他版本(例如,我怎樣才能得到關於Data.Url一個錯誤,當我列舉Data.Poco.Url)?首先有沒有關於代碼的東西,它使得它在另一個命名空間中獲取數據庫第一個實體類,但在同一個項目中?這是Code First中的錯誤還是我的錯?

回答

3

實體框架不使用名稱空間作爲名稱的一部分 - 實體名稱本身必須是唯一的。

+0

哇 - 頭腦風暴!那麼,在你的答案後,我搜索了一些,因爲我有一個更好的主意尋找什麼,並發現這個其他問題 - http://stackoverflow.com/questions/3521497/how-does-ms-entity-framework-map從概念模型到clr類型。謝謝你的幫助! – Chad 2010-12-27 17:24:03