2011-08-08 7 views
0

私は覚えがたい簡単な質問です。我々は3つの環境を持っています:ローカルマシン(各開発者に固有の)、開発、および生産。接続文字列は設定ファイル(web.configではなくweb.configがファイルを指す)にあります。特定の時間にアクティブなのは1つだけです(他の2つはコメントアウトされていますが、3つはすべて同じ名前ですが、各環境ごとに異なる値があります)。異なる環境/接続文字列を持つLinqからSQLへの使用

私はActiveRecordパターンの基本的なバージョンを使用してデータアクセスを処理しています(Linq生成CSファイルのstatic GetByPropertyメソッド)。デザイナーと一緒にLinqクラスを使用できるようにするには、DataContextを新規に作成するときに、接続文字列(たとえばConfigurationManager.AppSetting["TheConnectionString"])でその設定を渡すだけです。リクエストごとにコンテキストを新しくするアプローチをとっています。私は毎回接続文字列を渡すことに注意する必要がありますか、その標準的な操作手順ですか?DRY以外の問題はありますか?

答えて

1

あなたは少なくとも私のお気に入りのもの2つ(ActiveRecordとLINQ to SQL)を選択しました。 ;-)それにかかわらず、もしあなたが特にバグがあれば、DRYの問題を避けるために、コードをファクトリメソッド(または同様のもの)に移動することができます。少しのリファクタリングと再構築が必要になりますが、後でその問題を解決できます。

接続文字列を環境固有のものに変更することは、LINQ、DataSets、EFなどを使用しているかどうかにかかわらず、これはかなり標準的な操作手順です。実際の永続ストアの場所は構成上の問題です。

+0

ええ、私はNHibernate +リポジトリパターンが好きですが、それは仕事には "複雑すぎる"と外国の話題を紹介します。私はLINQを使用する承認を得て幸いです。Stored ProcsとDataSets X-( –

+1

LINQは素晴らしい抽象です。データアクセス技術として、オブジェクトを反復するのが大好きです。 EFチームが「後ろ向きに走っている」ために大いに投げられましたが、恐ろしい死を迎えることを望みます。;-)私は「承認を得る運」という問題を理解しています。私はできるだけ多くの人々がハードコード(と恐ろしい死亡する必要があります)として構成を使用する側に完全にです –

+0

はい、ハードコーダーへの死! –

関連する問題