このエラーに関して他にも多くの投稿があったことは知っていますが、私の問題に光を当てたり助けたりすることはできませんでした. 私は SqlExpress への直接接続を使用しているため、特別な Oracle または MySQL データベースなどはありません。これは手袋のようにぴったり合うはずです。
シナリオはこれです。いくつかのプロジェクトで構成されるソリューションを作成しました。リポジトリ、データ (EF5.0)、ユーティリティ、テスト プロジェクト、MVC Web アプリケーション。目標は、EF5 と、テスト プロジェクトおよび MVC アプリケーションからのいくつかのリポジトリを使用して、Repositories プロジェクトのリポジトリを介してデータ クラスを介して基になる SQL Express データベースに簡単にアクセスすることです。
テスト プロジェクトは機能し、問題なくデータベースにアクセスして更新できます。
ただし、MVC Web プロジェクトは、「要求された .Net Framework Data Provider が見つかりません。インストールされていない可能性があります」というメッセージをスローしています。テスト プロジェクトと同じ接続文字列を使用しているため、理解できません。
[ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.]
System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1426271
WebMatrix.Data.DbProviderFactoryWrapper.CreateConnection(String connectionString) +64
WebMatrix.Data.<>c__DisplayClass15.<OpenConnectionStringInternal>b__14() +16
WebMatrix.Data.Database.get_Connection() +19
WebMatrix.Data.Database.EnsureConnectionOpen() +12
WebMatrix.Data.Database.QueryValue(String commandText, Object[] args) +63
WebMatrix.WebData.DatabaseWrapper.QueryValue(String commandText, Object[] parameters) +14
WebMatrix.WebData.SimpleMembershipProvider.GetUserId(IDatabase db, String userTableName, String userNameColumn, String userIdColumn, String userName) +232
WebMatrix.WebData.SimpleMembershipProvider.ValidateUserTable() +85
私は持っている ...
- System.Data.SqlClient を web.config に登録しました。
- この記事に従って、System.Data の登録済みバージョン (2.0.0.0) が GAC に存在することを確認しました。
- 接続文字列にタイプミスがないことを確認しました。
これが私がweb.configに持っているものです...
<connectionStrings>
<add name="DBCatalogContext"
connectionString="metadata=res://*/DBCatalog.csdl|
res://*/DBCatalog.ssdl|
res://*/DBCatalog.msl;
provider=System.Data.SqlClient;
provider connection string="data source=.\SQLEXPRESS;
initial catalog=DBCatalog;
integrated security=True;
multipleactiveresultsets=True;
App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
<system.data>
<DbProviderFactories>
<add name="SqlClient Data Provider"
invariant="System.Data.SqlClient"
description=".Net Framework Data Provider for SqlServer"
type="System.Data.SqlClient.SqlClientFactory,
System.Data,
Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</DbProviderFactories>
</system.data>
私にとって意味をなさない唯一のことは、「参照」フォルダーの下の「System.Data」参照を選択し、プロパティを見ると、バージョン4.0.0.0であると表示されていますが、構成サイトの「DbProviderFactories」セクションのバージョンを変更してもエラーが発生します。また、機能するテストプロジェクトでこのライブラリへの参照も表示されません。
これは見落としであるか、構成設定が欠落していると確信していますが、この時点で他にどこを見ればよいかわかりません。
ありがとう、G