2012-10-30 141 views
3

我一直在嘗試使用代碼優先的遷移,並且取得了一些有限的成功,但是我錯誤的一件事是我沒有告訴它哪個項目具有配置信息。它爲我生成了一些類,並且我有所作爲,但我認爲我應該理清配置問題並重新開始。實體框架代碼第一次遷移 - 啓用遷移失敗

錯誤。現在我試圖刪除所有的遷移東西,我發現我無法重新安裝它。我已經卸載了,重新安裝EF 5,但是當我使用Enable-Migrations命令,我得到一個異常報告:

System.Runtime.Serialization.SerializationException:類型不 解決的成員 「 System.Data.Entity.Migrations.Design.ToolingFacade + GetContextTypeRunner,EntityFramework, Version = 4.4.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。

不管我現在做的,我似乎無法讓過去那個。有任何想法嗎?

+1

任何其他人通過Google觸及此問題可能要嘗試雙重檢查EF的所有App.config重新映射,以確保它們指向正確的版本(.NET 4爲4.4,.NET 4.5爲5.0)*並且還*確認項目文件引用了正確的DLL。 Nuget設法在更新過程中以某種方式將其中的某些內容搞砸了,並且將所有內容正確排列,使遷移工具再次運行。 –

+0

@DanFitch非常感謝你,Nuget shenanigans提供了一個程序集綁定重定向,當我在不同版本之間切換時,它沒有清除。 –

回答

3

嗯,我不知道爲什麼這不是一個問題從一開始,但事實證明,這個問題是由我的一些項目的目標是.NET 4.5和一些針對.NET 4.0引起的。這意味着這些項目使用不同版本的EF 5(v5與v4.4),我認爲這是造成問題的原因;它試圖加載錯誤版本的DLL。

當我卸載從我的解決方案靶向.NET 4.5的項目,我可以使用啓用的遷移對項目靶向.NET 4

28

這發生在我身上,因爲我在的路徑中的特殊字符我項目 - 具體而言,與&符號&。我刪除了&符號,然後一切都像魅力一樣工作。

+1

謝謝,很好的解決方案。我的項目路徑也有一個&,所以我重命名它,我的問題解決了。 –

+2

是的這個解決方案工作.. :) ..謝謝.. –

+1

啊!謝謝你,是的,upvoted這個答案! –

0

寫這個原因可能有一天它會幫助某人 - 只是有同樣的問題,並且(愚蠢的)問題是連接字符串上的主機名不好。

0

我的項目收到這個錯誤的命名約定。 MyProject.MyProject.Web,MyProject.MyProject.EntityFramework等

我改成了MyProject.MyProject2.Web等

0

我的項目文件夾路徑有一個詞Q & A.只要我改變對質量保證和重新運行遷移,這個問題已經消失。 避免項目路徑中任何文件夾名稱中的'&'字符。

相關問題