web-dev-qa-db-ja.com

アプリケーション構成ファイルに「MyApplicationEntities」という名前の接続文字列が見つかりませんでした

EF 4.3をインストールし、移行でプロジェクトをアップグレードしようとしています。ただし、パッケージマネージャーコンソールを使用してプロジェクトに対してadd-migration initialを実行しようとすると問題が発生します。

例外をスローしていますNo connection string named 'MyApplicationEntities' could be found in the application config file.

今私の設定はそれをすべて持っています

<connectionStrings>
<add name="MyApplicationEntities" 
     connectionString="metadata=res://*/DataModel.csdl|res://*/DataModel.ssdl|res://*/DataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost;initial catalog=MyApplicationEntitiesDB;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

問題がEF 4.3のバグなのか、私が正しくしていないことがあるのか​​はわかりません。

この投稿 は問題を解決しましたが、まだ完全ではありませんでした。

誰もが答えを得ました。

サンジに感謝します。

45
Sanj

ああ、これを偶然見つけた。

削除する必要がありました

public MasterEntities()
    : base("name=MyApplicationEntities")
    //      ^^^^^
{
}

public MasterEntities()
    : base("MyApplicationEntities")
{
}

EF 4.3は、接続文字列がname=xxxxx

102
Sanj

Sanjが指摘した解決策は、データベースプロジェクトのApp.configからWebプロジェクトのweb.configに接続文字列をコピーする必要があるということです。上記の答えが正しいとマークされている理由がわかりません。コメントの代わりにこれを回答として追加するので、将来の読者がこれを見つけることができます。

38
Bill

同じエラーが発生しましたが、正しい接続文字列名とDbContextが正しく宣言されたweb.configファイルが既にありました。ただし、-Verboseを指定してadd-migrationを実行すると、「スタートアッププロジェクト」が自分のコンテキストを含むプロジェクトとは異なるプロジェクトとして示されます。だから私は、スタートアッププロジェクトを変更し、追加移行を再実行しましたが、すべてうまくいきました!!

28
Phil

Statupプロジェクトの設定ファイルに接続文字列があることを確認してください。この link が役立つ場合があります。

8

私もこの問題を抱えていて、それを解決しました

  1. 正しいStartUp project
  2. パッケージマネージャーコンソールでコマンドを再実行します。

物事は予想通りに機能しました。

6
xibabababa

同様の例外も発生しました。 AppConfigは元々、エンティティモデルを生成するプロジェクトで作成されます。ただし、他のプロジェクトを使用してアプリケーションを実行している場合(私のソリューションには複数のプロジェクトがあります)、実行中のプロジェクトにAppConfigを含める必要があります。

3
Dhanuka777
 1. ctor => Context

   public MasterEntities()
    : base("ConnectionStringName")
{
}

 2. config file

   <add name="ConnectionStringName"
      connectionString="Data Source=.;Initial Catalog=DatabaseName;User Id=sa; Password=YourPass;"
      providerName ="System.Data.SqlClient" />

 3. in Sulation Exporer right click the project and select 'Set as
    startup project'

 4. in PackageManagerConsole Change Default Project to Your Project of
    context class.

 5. then:

add-migration new

または、作業中のプロジェクトの設定ファイルにConnectionStringを追加しました。

0
MohammadSoori