私はEntity Frameworkを使用して、データベースを更新するコードの最初の移行を使用しているプロジェクトに取り組んでいます。私は別のマシンでこのプロジェクトを開始し、非常にうまくいった。今度は別のマシンでコードをチェックアウトしました。このマシンにはデータベースがないので、nugetでupdate-databaseコマンドを実行しました。以前のマイグレーションを適用し、このマシンに新しいデータベースを作成する必要がありますが、それには次のエラーが表示されます。エンティティフレームワーク:コードの初回移行のためのDataSourceを変更できません
ローカルSQL Expressインスタンスがあれば、コードファーストは、そのインスタンス 上のデータベースを作成しています(Visual Studioの2010年にデフォルトでインストール)が利用可能であるならば、私は
を言うthis MSDN記事を読みますSQL Expressは使用できません。次に、Code FirstはLocalDbを使用します(Visual Studio 2012にデフォルトでインストールされます)。
これは、最初のマシンでマイグレーションを有効にしたときに、DataSourceとしてSQLEXPRESSインスタンスを持つデータベースを作成したので、現在のマシンにはそのデータベースがないため、データベースを作成できません。だから私はEntityFrameworkのDataSourceをLAPTOP-HD618J49である現在のSQL Serverのインスタンスに変更しようとしています。このため、私は、このインスタンスを持つハードコードされた接続文字列をapp.configに書き込もうとしましたが、データコンテキストクラスのContextNameを変更しましたが、役に立たなかった。私が逃しているかもしれないことについていくつかの方向を教えてください。
[here](http://www.entityframeworktutorial.net/code-first/database-initialization-in-code-first.aspx)に記載されているように、コンテキストのコンストラクタに接続文字列名を指定することをお勧めします。 。次に、その接続文字列を設定ファイルに追加します。コンテキストの名前を変更する必要はありません。 –
@SteveGreene私もそれを試みました。それでも同じエラー。 –
まず、VS(またはSQL Management Studio)のSQL Server Object Explorerを使用して目的のデータベースに接続し、アクセス権があることを確認します(デフォルトではリモートデータベースにアクセスできません)。次に、エラーメッセージは引き続き '。\ SQLEXPRESS'を参照していますか?これは、LAPTOP-HD618J49に接続文字列を使用していないことを示しています。 –