2013-11-25 39 views
0

我將項目從VS 2012和EF 5升級到VS 2013和EF 6。在這一行錯誤:類型或命名空間名稱'ModelName'[VSM下的cs文件]在VS 2013和Entity Framework中不存在6

using CsCta.CtaSqlModel;  

(這是我的老版本有沒有):

「CtaSqlModel」「類型或命名空間名稱CtaSqlModel'不存在命名空間‘CsCta’存在」指的是我想到一個CtaSqlModel.edmx和CtaSqlModel.tt文件,名爲CtaSqlModel.cs。這些是從現有數據庫(DatabaseFirst)創建的EntityFramework 6文件。

有點神祕的一面是,使用CsCta.CtaSqlModel去除違規行;對於缺少的定義(對於EF 6 dbcontext實體)產生了大量的構建錯誤 - 因此它看起來像編譯器從該行獲取了一些有用的信息,即使它抱怨它是無效的。 ---另外,如果我將行更改爲「using CsCta.CtasqlModel;」 (改變的情況下),然後我得到了十億構建錯誤;當我使用CsCta.CtaSqlModel將其更改回正確的案例時「那麼我會得到一個構建錯誤。因此,違規使用聲明正在被認可,有點。

有什麼建議嗎?

回答

0

更新: 我在幾個小時後解決了這個問題,但這是奇怪的行爲。我瀏覽了代碼窗口,發現紅線(不在構建錯誤列表中)並糾正錯誤。然後,我刪除了「使用」語句的問題,並且一切正常編譯 - 顯然這條線不是必需的,或者不適用於EF6。如果我發現另一個故障,我會在這裏再次更新。

0

將現有項目從EF5移至EF6時,需要替換項​​目中的T4模板,因爲在EF6中移動的類型以及爲EF5生成的代碼不會針對EF6進行編譯。我在這裏有一點點博客here

相關問題