アプリケーションの構成ファイルの接続文字列「MyConnection」に、必要なproviderName属性が含まれていません。」


85

私は使用しますEntity Framework Code First

私の接続文字列は構成ファイルにあります:

<connectionStrings>
    <clear/>
    <add name="ApplicationServices" connectionString="Data Source=PC-X;Initial Catalog=MYdb;Integrated Security=True"/>
  </connectionStrings>

データ(DBを作成する必要があるもの)にアクセスしようとすると、次のエラーが発生します。

アプリケーションの構成ファイルの接続文字列「ApplicationServices」に、必要なproviderName属性が含まれていません。」

何が足りないのですか?

回答:


182

connectionString属性の後に次のコードがありません(SQLを使用していると仮定します)。

providerName="System.Data.SqlClient"


18
Entity Frameworkを使用している場合:providerName="System.Data.EntityClient"
Dr1Ku 2013年

3
これを接続文字列に追加しようとしていました。むしろ、それは<add />要素の新しい属性です。connectionString属性の兄弟属性。
ショーンB

@ IronMan84 SqlClientを使用した後、型キャストエラーが発生し、EntityClientが機能しました
Zia Ul Rehman Mughal

15

将来のいつか。完全なコード

<add name="YouContext" connectionString="Integrated Security=True;Persist Security Info=False;Initial Catalog=YourDatabaseName;Data Source=YourPCName;" providerName="System.Data.SqlClient"/>

0

providersタグに到達するまで、web.configを下に移動します。たとえば、これが私のプロバイダーの声明です:

<providers><provider invariantName="System.Data.SqlClient" ... /></providers>

これSystem.Data.SqlClientをプロバイダー名として接続文字列に追加して、接続文字列が次のようになるようにする必要があります。

  <connectionStrings>
 <add name="ApplicationServices" providerName="System.Data.SqlClient" connectionString="Data Source=PC-X;Initial Catalog=MYdb;Integrated Security=True"/>
  </connectionStrings>


0

私の場合、問題は間違ったスタートアッププロジェクトターゲットにありました。PMコンソールで、ターゲット移行アセンブリプロジェクトは正しかった。

私はマルチプロジェクトソリューションを持っており、ターゲットはいくつかのWebサービスプロジェクトにありました。

そこで、StartUpをメインのWebSiteプロジェクトに変更したところ、移行はエラーなしで完了しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.