0

私と私の同僚は、LINQ (およびその後の DBML ファイル) を使用して、データベースに接続するアプリケーションに取り組んでいます。次のように、独自のデータベースで作業するために、私たち一人一人が独自の接続文字列を持っています。

public class DbConfig
{    
   public static string conStr = @"My connection string";
   public static string conStr = @"His connection string";
}

私たち一人一人がプロジェクトのそれぞれの部分に取り組むたびに、もう一方の接続文字列をコメントアウトするだけです。私の接続は、DBML ファイルで使用されるファイルconString内の 2 つのプロパティのいずれかを参照できるかどうかです。app.configありがとうございました。

4

2 に答える 2

2

次のようなコードを使用して、マシン名を使用してこれを行うことができます。

public static class ConnectionString
{
    public static string Get
    {
        get
        {
            if(ConfigurationManager.ConnectionStrings.Count == 0)
                throw new Exception("No connection strings");

            var machineConnectionString = ConfigurationManager.ConnectionStrings["ConStringPrefix" + Environment.MachineName];
            var genericConnectionString = ConfigurationManager.ConnectionStrings["DefaultConString"];
            return  machineConnectionString ?? genericConnectionString;
        }
    }
}

そして、あなたの app.config には次のものがあります。

<connectionStrings>
    <add name="ConStringPrefix@MyPCName" connectionString="Data Source=.\sqlexpress;Initial Catalog=DatabaseName;Integrated Security=true" providerName="System.Data.SqlClient" />
    <add name="ConStringPrefix@MyFriendPcName" connectionString="Data Source=.\sqlexpress;Initial Catalog=DatabaseName;Integrated Security=true" providerName="System.Data.SqlClient" />
    <add name="nhibernate.conexao" connectionString="Data Source=.\sqlexpress;Initial Catalog=DatabaseName;Integrated Security=true" providerName="System.Data.SqlClient" />
</connectionStrings>
于 2015-12-08T17:41:37.890 に答える
0

個人用のビルド構成 ( https://msdn.microsoft.com/en-us/library/kwybya3w.aspx ) を作成し、その構成でいくつかのカスタム タグを定義して、コードで使用できるようにすることができます。

#if MyBuild
    public static string conStr = @"My connection string";
#endif

#if HisBuild
   public static string conStr = @"His connection string";
#endif

カスタムを定義する

プロジェクトの [プロパティ ページ] -> [ビルド] を開き、カスタム構成を選択した後、[条件付きコンパイル定数] プロパティを変更します。

これは、独自のシンボルを定義し、現在のビルド設定に基づいてコードを実際に含める/除外する #if #endif を作成する方法です (すべてのページの上部に #define YourSymbol を記述するなど)。

別の解決策として、appsettings への外部参照を追加し、その参照ファイルをソース リポジトリに含めない (共有しないようにする) こともできます。これにより、プログラマーは独自のファイル構成を持つことができます。

app.config/web.config に次のような行を入れるだけです

<appSettings configSource="YourCustomConfiguration.config"/>

そして、それを teamfoundation または使用する cvs に追加しないでください

もちろん、YourCustomConfiguration.config はファイルです。相対パスを指定するだけで、好きな場所に配置できます。

まあ、私は appsettings と言いましたが、あなたの場合は必要なものに configSource を使うことができます<connectionStrings configSource="YourCustomConnectionStrings.config">

于 2015-12-08T17:34:37.127 に答える