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="data source=localhost;initial catalog=MyApplicationEntitiesDB;integrated security=True;multipleactiveresultsets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
問題がEF 4.3のバグなのか、私が正しくしていないことがあるのかはわかりません。
この投稿 は問題を解決しましたが、まだ完全ではありませんでした。
誰もが答えを得ました。
サンジに感謝します。
ああ、これを偶然見つけた。
削除する必要がありました
public MasterEntities()
: base("name=MyApplicationEntities")
// ^^^^^
{
}
に
public MasterEntities()
: base("MyApplicationEntities")
{
}
EF 4.3は、接続文字列がname=xxxxx
Sanjが指摘した解決策は、データベースプロジェクトのApp.configからWebプロジェクトのweb.configに接続文字列をコピーする必要があるということです。上記の答えが正しいとマークされている理由がわかりません。コメントの代わりにこれを回答として追加するので、将来の読者がこれを見つけることができます。
同じエラーが発生しましたが、正しい接続文字列名とDbContextが正しく宣言されたweb.configファイルが既にありました。ただし、-Verboseを指定してadd-migrationを実行すると、「スタートアッププロジェクト」が自分のコンテキストを含むプロジェクトとは異なるプロジェクトとして示されます。だから私は、スタートアッププロジェクトを変更し、追加移行を再実行しましたが、すべてうまくいきました!!
Statupプロジェクトの設定ファイルに接続文字列があることを確認してください。この link が役立つ場合があります。
私もこの問題を抱えていて、それを解決しました
StartUp project
。物事は予想通りに機能しました。
同様の例外も発生しました。 AppConfigは元々、エンティティモデルを生成するプロジェクトで作成されます。ただし、他のプロジェクトを使用してアプリケーションを実行している場合(私のソリューションには複数のプロジェクトがあります)、実行中のプロジェクトにAppConfigを含める必要があります。
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を追加しました。