14

MVC4 プロジェクトを .NET 4.5 および EF5 にアップグレードし、VS2012 の使用を開始しました。パッケージマネージャーで自動移行を再度設定する必要があることに気付いた後、実行Enable-Migrations - EnableAutomaticMigrationsしてエラーを受け取りました

No context type was found in the assembly 'MySolutionName'.

一部の調査では、プレリリースを有効にしない EF5 に関係があると述べています。実行しましたが、EF5が既にインストールされていると言われました(これは、指定せずにInstall-Package EntityFramework -IncludePrerelease以前にNuGetmanagerを介してインストールしたときでした-IncludePrerelease.

プロジェクトの移行を有効にするために何をしなければならないか知っている人はいますか?

4

2 に答える 2

15

私はちょうど同じ問題を抱えていて、解決策を探しているときにあなたの質問を見つけました.

私はそれを働かせました。私にとっての問題は、NuGet 経由で EF 5 を追加したときに、最初に .NET 4.0 フレームワークをターゲットにしたことでした。ターゲット フレームワークを変更し、NuGet 経由で EF 5 を再インストールすると、修正されました。NuGet を介して EF 5 を再インストールするだけで解決できる可能性もあります (コメントを参照)。

App.config ファイルに次の行がありました。Version=4.4.0.0 に注意してください。

<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
</configuration>

そこで、ソリューション構成内でターゲット フレームワークを 4.5 に設定し、サポートされるランタイムも (アプリ構成内で) 4.5 に設定しました。

年:

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

新しい:

  <startup>
    <supportedRuntime version="v4.5" sku=".NETFramework,Version=v4.5" />
  </startup>

その変更後、NuGet 経由で EF 5.0 を削除し、再度追加しました。その結果、次の configSection が得られました。Version=5.0.0.0 に注意してください。

<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
</configuration>

その変更後、それは機能しました。

于 2012-08-30T14:34:26.003 に答える
1

私も同じ問題に直面しましたが、ある日突然、ASP MVC 4 プロジェクト フォルダーにある packages.config というファイルに注目しました。だから、ここで私は得る

 <package id="EntityFramework" version="6.0.2" targetFramework="net45" />

バージョン番号を適切な番号に変更しました。つまり、EF バージョン 5.0.0 を使用しました。バージョンを変更した後、すべてが正常になりました。

于 2013-12-19T07:43:18.563 に答える