Entity Frameworkの接続文字列を編集するにはどうすればよいですか?


115

最近、app.configファイルを編集して、Entity Frameworkデータモデル(.edmxファイル)の接続文字列を変更する必要がありました。しかし、知りたいのですが、デザイナーを使用してEF接続文字列を編集する方法はありますか?

元の接続文字列は、エンティティデータモデルウィザードによって自動生成されます。その場合、接続文字列は変更できません。.edmxデザイナーのプロパティウィンドウで無効のままになります。(app.configで)できる限り手動でXMLを編集することを避けたいので、元のウィザード画面に戻って接続文字列を変更し、ツールにapp.configファイルを編集させる方法があるかどうか疑問に思いました私のために。

回答:


190

app.configファイルから接続文字列を削除した場合、エンティティデータモデルウィザードを再実行すると、新しい接続を構築することができます。


17
優れた。これがまさに私が探していた答えです。安全のために、既存の文字列を(削除するのではなく)コメントアウトし、app.configの変更を保存し、デザイナーを右クリックして、[データベースからモデルを更新]を選択しました。ウィザードを使用すると、接続文字列に機密情報(uid&pwd)を含めることができます。ありがとう!
DeveloperDan

5
モデルファーストを実行している場合は、デザイナーを右クリックし、代わりに[モデルからデータベースを生成]をクリックします
Carl Onager

2
App.configファイルを更新してからVS.NET 2012を再起動する必要があることを除いて、これは私にとってもうまくいきました。App.configファイルが変更されたことを検出していませんでした。
Garry English

2
接続文字列が削除されたことをデザイナーが認識できるように、app.configファイルで明示的にsaveを呼び出す必要がありました。
ロスコ2014年

1
VSを再起動する代わりに、1。app.configで接続文字列をコメント化する2. .edmxを含むプロジェクトを再構築する3. .edmxデザインサーフェイスを右クリックし、[データベースからモデルを更新...]をクリックすると、接続文字列ウィザードを起動します。
RIanGillis

18

いいえ、デザイナーで接続文字列を編集することはできません。接続文字列はEDMXファイルの一部ではなく、単に構成ファイルからの参照値です。これは、おそらくプロパティウィンドウで読み取り専用になっているためです。

アプリケーションを再構築せずに変更を加えたい場合があるため、構成ファイルの変更は一般的なタスクです。これが、構成ファイルが存在する理由です。


思い出させるための+1:彼らが設定ファイルにそれを置いた場合、それは彼らがあなたにそれを変更できるようにしてほしいことを意味します。私は主に私の変更が上書きされる可能性があるという事実を心配していました
tobiak777

行って、edmxが属しているプロジェクトのアプリ構成で接続文字列を変更する必要があります。トップレベルアプリケーションの構成ではありません(実行時に使用されます)。o_0
akava 2015

9

通常、接続文字列はWeb.configで定義します。edmxを生成した後、接続文字列はApp.Configに保存されます。接続文字列を変更する場合は、app.configに移動して、すべての接続文字列を削除します。edmxに移動し、デザイナー画面を右クリックして、[ データベースからモデルを更新 ]を選択し、ドロップダウンから接続文字列を選択して、[ 次へ ]をクリックします追加]または更新](必要なものを選択)して終了します。

出力ウィンドウには次のようなものが表示されます

生成されたモデルファイル:UpostDataModel.edmx。データベースからのメタデータのロードには00:00:00.4258157がかかりました。モデルの生成には00:00:01.5623765かかりました。 接続文字列をApp.Configファイルに追加しました。


同様の問題がありますが、接続文字列をコメント化してモデルを更新し、新しい接続文字列を選択すると、モデル内のcontext.csクラスが空になります。コンテキストクラスの生成に失敗しない限り、なぜこれを行うのかわかりませんか?
2016年

1
それはそれをすべきではありません。T4テンプレートツールが破損している可能性があります。
DanKodi 2016年

私は同意する、それは「すべきではない」。ただし、基礎となるスキーマに重要な変更をいくつか加えると、結局モデルを吹き飛ばして新しいスキーマを作成しなければならなかった回数のカウントを失ってしまいました。EF7を使用してedmxファイルを削除すると、問題が解決する場合があります。いずれかの方法で、thatsの私も、この時間は何をしたか、私は、ちょうどDeleteキーを押し、モデル内のすべてを強調表示し、それらのアイテムをもたらしたが、中にバックします。
ビットシフト

2

.edmxファイルを開き、テキストエディターでSchema = "を変更します。 your required schema "を / web.configを開いて、接続文字列からユーザーIDとパスワードを変更します。完了です。


うん、これはそれをやった。
ggderas

1

次の手順に従います。

  1. app.configを開き、接続文字列にコメントします(ファイルを保存)
  2. edmxを開き(プロパティに移動し、接続文字列は空白にする必要があります)、edmxファイルをもう一度閉じます
  3. app.configを開き、接続文字列のコメントを外します(ファイルを保存)
  4. edmxを開き、プロパティに移動すると、接続文字列が更新されているはずです!!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.