1

デバッグとライブ接続の文字列をプログラムで切り替える方法を誰かが提案できますか?

私は他の人が次のようにコントローラーからコンストラクターにEntityConnectionを渡しているのを見ました:

private XYZDatabase db = new XYZDatabase(ConfigurationManager.
ConnectionStrings["XYZDatabase-TEST"].ConnectionString);

しかし、それでも手動で変更する必要がありますか?使用する方法はありますか

System.Net.Dns.GetHostName()またはそれを自動的に切り替えるのと同様ですか?

ありがとう

4

3 に答える 3

1

Ayendeには、この問題に対処する投稿があります。

http://ayende.com/blog/135169/frictionless-development-web-config-and-connection-strings

于 2012-12-10T18:53:52.997 に答える
0

私のソフトウェアでは、app.configとcomment / uncommentに同じ名前の2つの接続文字列があり、構成を切り替えることができます。

もう1つの方法は、ソリューションに静的プロパティ(.asaxファイル?)を作成し、それを使用して、ConnectionStringsをフェッチするときにXYZDatabase-TESTとXYZDatabaseを交換することです。

于 2012-12-10T16:40:53.680 に答える
0

次のように、接続文字列をWeb.configに追加します。

<connectionStrings>
    <add name="XYZDatabase-TEST" connectionString="Server=.\SQLEXPRESS;Database=XYZDatabase-TEST";integrated security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>

次に、Web.Release.configを開き、追加します

<connectionStrings>
    <add name="XYZDatabase-TEST"
        connectionString="Data Source=OTHERSERVER;Initial Catalog=XYZDatabase-TEST;Persist Security Info=True;User ID=sa;Password=password" providerName="System.Data.SqlClient"
        xdt:Transform="SetAttributes"
        xdt:Locator="Match(name)"/>
</connectionStrings>

これで、リリース構成を使用してアプリケーションをデプロイメントサーバーに公開するたびに、web.release.configの接続文字列が使用されます。

デバッグ時に、この変換はローカルでは機能しないことに注意してください。web.configトランスフォーメーションを実行するには、公開する必要があります。

于 2012-12-11T07:49:24.823 に答える