web-dev-qa-db-ja.com

認識されない要素プロバイダーのメタデータを取得できません

エンティティフレームワークテンプレートを使用してコントローラーを追加しようとすると、常にエラーメッセージが表示されますが、エラーメッセージが表示され続ける

    unable to retrieve metadata for 'path' unrecognized element providers. 
         (C:\Users\user\appdata\local\Temp-mp6124.tmp line 78)

接続文字列に関連していることがわかっているので、ここに接続文字列を示します

  <connectionStrings>
    <add name="NoktatyContext" connectionString="Data Source=(localdb)\v11.0; Initial Catalog=NoktatyContext-20140122154208; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|NoktatyContext-20140122154208.mdf" providerName="System.Data.SqlClient" />
  </connectionStrings>
19
Mohamed Naguib

設定ファイルの<providers>セクションを削除することで、この問題を修正できました。

この:

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  <providers>
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>
</entityFramework>

これになる:

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>

私は今朝この問題を抱えていて、修正を見つけました。データベース(およびプロバイダー)を指定しない場合、EFは既定でSQL Server Expressを使用します。

43
macoms01

MVC足場はEntity Framework 6以降をサポートしていません

現在のバージョンのEntity Frameworkと、Install-Package EntityFramework -Version 5.0.0をアンインストールしてください。

タグを削除...

VSを再起動します

OK