2012-02-21 17 views
2

私はWinFormアプリケーションで作業しています。私は"ライブラリプロジェクト"にデータアクセスロジックを実装しました。これは私のWinFormプロジェクトで参照として設定しました。私はLINQ to SQLを使用してプロジェクトデータベースに接続し、使用するテーブルをdbmlファイルにマッピングしています。今私は自分のプロジェクトを公開し、プロダクションDBを指すように接続文字列を変更する必要があります。再コンパイルせずに接続文字列を変更する

プロジェクトを再コンパイルせずに接続文字列を変更することはできますか? それは...

非常にデバッグ時に便利な、メンテナンスのためになるだろう、私はapp.configでもSettingsファイルにそれを変更しようとしたが、それはまだ開発のDBを指すように思えます。

どこが間違っていますか?

+0

最小のテストケースを作成できますか?可能な限り小さいアプリケーションにはまだ問題がありますか? –

+0

接続文字列はどこに定義されていますか? –

+0

@KirillPolishchukデータにアクセスするためのdllプロジェクトを作成しました。内部で使用するテーブルを置くdbmlファイルを作成すると、接続文字列は 'settings'ファイルと私の" data-access-project "の' app.config'ファイルに保存されます。私はこのDLLを参照として使用するプロジェクトで接続文字列を指定したいと思います...可能ですか? – davioooh

答えて

3

この記事で提案された解決策は非常に良いです:http://goneale.com/2009/03/26/untie-linq-to-sql-connection-string-from-application-settings/

しかし、私は別の方法で私の問題を解決することを決めました。私は私のDAOクラスにパラメータを取るコンストラクタを追加dbmlファイルにanytingを変更せずに

:代わりにLINQ-TO-SQLクラスをインスタンス化するDataClasses()コンストラクタを使用しての

public MyDataAccessClass(string connectionString) 
{ 
    _connString = connectionString; 
} 

はその後、私はそれを置き換えますDataClasses(_connString)となります。

私は必要な場所にデータアクセスライブラリを使用できます。接続文字列は、参照アプリケーション(または他の場所)のapp.configに設定されます。

関連する問題