2016-07-15 13 views
0

用という名前の接続文字列を受け付けません。私のDbContextクラスでDbContextは、私はこのようなapp.configをしているLocalDb

<connectionStrings> 
    <add name="MyDB" connectionString="Data Source=(localdb)\ProjectsV12;Initial Catalog=MrBoy;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False" /> 
    </connectionStrings> 

私は、例えば、接続文字列を、貼り付けるにコピーする場合、それは正常に動作します

: base("Data Source=(localdb)\ProjectsV12;Initial Catalog=MrBoy;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False") 

しかし、私は

:base("name=MyDB") 

を指定した場合、私は自分のアプリケーションからとパッケージマネージャコンソールからエラーを取得する:

「アプリケーションの構成ファイル内の接続文字列 『mydbという』 には必須のproviderName属性が含まれていません。

有効な接続文字列が受け入れられないのはなぜですか?接続文字列を手動でコンストラクタに渡す以外の回避策がありますか?

+0

'name = MyDB'ではなく' MyDB'を渡すべきでしょうか?おそらくそうではありませんが、あなたの接続文字列に 'providerName =" System.Data.SqlClient "があるはずです。 – DavidG

答えて

2

この

  <add name="MyDB" connectionString="Data Source=(localdb)\ProjectsV12;Initial Catalog=MrBoy;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient" /> 

のconnectionStringsは、プロバイダ・タイプを必要としています。エンティティコンテキストとして設定する!=接続文字列を定義する。コンテキストは、コンテキストを設定するときに使用されます。

関連する問題