オンザフライで変更接続
-
25-09-2019 - |
質問
私は50個のデータベースとSQLサーバーを持っています。それぞれがまったく同じスキーマを持っています。 私は素晴らしい亜音速2.2はそれらのいずれかに基づいてDALを作成し使用します。
私は、データベース名のリストいえループに必要とそれぞれに接続して、一度にアップデートいずれかを実行します。
があった場合どのように亜音速使用する接続文字列を変更する方法。私はそれが変化し続けることができる方法ことを私はメモリ内の接続文字列を格納する必要があるだろうと考えています。
これは可能でしょうか?
私は
をやってみましたConfigurationManager.ConnectionStrings["theConnStrName"].ConnectionString = updated-connection-string-here;
..しかし仕事しなかったこと。
ありがとう!
解決
はサブソニックは、主に一つだけのデータベースのために設計されました。 私は複数のデータベースにいくつかの方法をやりました。私は亜音速の古いフォーラムでオンザフライでのプロバイダを作成するための完全なサンプルを掲載していました。これらの記事は現在なくなっています。あなたのコード内で必要に応じてどのようなあなただけの亜音速初期化するために、ダミーの接続文字列で設定ファイル(yourProviderName)で1つのプロバイダに設定されて試すことができ、その後、実際の接続文字列を設定します。これは、一度に1つのデータベースで動作しますが、私は、これはあなたが必要なものだと思います。あなたは、同時に複数のデータベースを使用すると、より多くのコードと亜音速2.xのコアにいくつかの変更を必要とする場合。
DataProvider provider = DataService.GetInstance(yourProviderName);
foreach(string connString in connectionStrings)
{
provider.DefaultConnectionString = connString;
DataService.Provider = provider;
// ... do stuff
}
他のヒント
私はそれが各データベースの亜音速のプロバイダを作成せずに修正するのは簡単だとは思いません。
その代わり、私はあなたがAで欲しいものを設定するconnnection文字列辞書リストと機能のいくつかの並べ替えwwithコードを拡張するために、溶液中のプロジェクトとして亜音速のソースを入れて、最良かつ最も清潔な場所に自分の道をデバッグう時間を与えられます。