2013-07-16 30 views
1

我在實體框架的模型中添加了兩列,並將一個字段從字符串更改爲Enumeration。當我去包管理器控制檯,輸入「更新數據庫,」我得到了以下錯誤:EF 4.4:模型更改不與數據庫同步

System.Runtime.Serialization.SerializationException: Type is not resolved for member 'System.Data.Entity.Migrations.Design.ToolingFacade+UpdateRunner,EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Update(String targetMigration, Boolean force) 
    at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0() 
    at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) 
Type is not resolved for member 'System.Data.Entity.Migrations.Design.ToolingFacade+UpdateRunner,EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. 

我得到允許的遷移同樣的錯誤。

我看到一個問題,建議擺脫__Migrations表,我這樣做,但它似乎沒有幫助。

另一種解決方案建議將項目更改爲.NET 4.5,然後重新安裝EF 5,但我所做的只是更改了EF版本號。

任何想法?

+0

如何安裝,NuGet?或文件參考? –

+1

我使用NuGet來安裝EF。 – SuperNES

+0

嘗試啓用遷移 - 下午控制檯的力 –

回答

1

解決了這個問題;必須從文件路徑中刪除&符號(!!!!)

+0

這是一個瘋狂的錯誤。這是我們團隊的開發人員第二次在這裏絆倒你的答案,因爲我們創建了一個名稱爲&符號的分支...... – julealgon

0

我有這個相同的問題,它證明是由使用不同版本的EntityFramework的解決方案中的兩個項目引起的。我的代碼第一個對象是在他們自己的.NET Framework 4.0程序集中構建的,但該解決方案的啓動項目是.NET 4.5 MVC項目。儘管兩個項目都使用Entity Framework「5.0」,但EF5的.NET 4版本是不同的程序集(版本4.4)。

我發現,讓「更新的數據庫的」臨時修復命令工作是改變在Web.config文件中本節:

<dependentAssembly> 
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral"/> 
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/> 
    </dependentAssembly> 

要這樣:

<dependentAssembly> 
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral"/> 
    <bindingRedirect oldVersion="0.0.0.0-4.4.0.0" newVersion="4.4.0.0"/> 
    </dependentAssembly> 

我最終的解決方法是用我的代碼第一類更新程序集到.NET 4.5並重新安裝EF5。