はい、プロバイダー マニフェスト トークンに関するもう 1 つの質問です。残念ながら、以前の 22 の質問はすべて、私の問題を解決するのに役立ちませんでした。MVC4 + Code First + Sql Express を使用して単純な Web アプリケーションを開発しています。
これが私のコンテキストの子孫です:
public class MCQContext : DbContext
{
public MCQContext()
: base("name=ApplicationConnection")
{
}
...............
}
そしてここ - 問題に関連する web.config の一部:
<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>
<connectionStrings>
<add name="ApplicationConnection"
connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="name=ApplicationConnection" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
したがって、ご覧のとおり、正しい接続文字列がコンテキスト クラスのベースに渡されます (接続文字列の名前を「MCQContext」に変更し、親コンテキスト クラスに何も渡さないと、同じエラーが発生します)。
修正方法がわかりません。完全に空の MVC4 アプリケーションを作成し、すべてのパッケージを削除し (必要なアセンブリを手動で指定し、NuGet を使用しないことをお勧めします)、参照を修正すると (sqlserver Express への参照を含む)、この動作が再現されます。