1

Entity Framework のモデルに 2 つの列を追加し、1 つのフィールドを文字列から列挙型に変更しました。パッケージ マネージャー コンソールに移動して「update-database」と入力すると、次のエラーが表示されます。

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'.

enable-migration でも同じエラーが発生します。

1 つの質問で __Migrations テーブルを削除することが推奨されていることがわかりましたが、それは役に立ちませんでした。

別の解決策では、プロジェクトを .NET 4.5 に変更してから EF 5 を再インストールすることが推奨されていましたが、これを実行しましたが、エラーで EF のバージョン番号を変更しただけでした。

何か案は?

4

2 に答える 2

0

私はこれと同じ問題を抱えていましたが、異なるバージョンの EntityFramework を使用するソリューション内の 2 つのプロジェクトが原因であることが判明しました。私のコード ファースト オブジェクトは独自の .NET Framework 4.0 アセンブリでビルドされましたが、ソリューションのスタートアップ プロジェクトは .NET 4.5 MVC プロジェクトでした。どちらのプロジェクトも Entity Framework "5.0" を使用していましたが、.NET 4 バージョンの EF5 は別のアセンブリ (バージョン 4.4) です。

「Update-Database」コマンドが機能するようにする一時的な修正は、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 を再インストールすることでした。

于 2014-01-12T06:54:39.107 に答える