リポジトリ パターンに目を通したところ、過去に使用していたいくつかのアイデアに気づき、気分が良くなりました。
ただし、このパターンを使用するアプリケーションを作成したいと考えていますが、エンティティ クラスをリポジトリ プロバイダーから切り離したいと考えています。
私はいくつかのアセンブリを作成します:
- IRepository インターフェイスを含む共通インターフェイスをホストする「インターフェイス」アセンブリ
- Product、User、Order などのエンティティ クラスをホストする「エンティティ」アセンブリ。一部のメソッドはそのような型またはそれらの配列を返すため、このアセンブリは「Interfaces」アセンブリによって参照されます。また、メイン アプリケーション アセンブリ (Web アプリケーションなど) によっても参照されます。
- 1 つ以上のリポジトリ プロバイダー アセンブリ。それぞれに (少なくとも) IRepository インターフェイスを実装するクラスが含まれ、特定のデータ ストアで動作します。データ ストアには、SQL Server、Oracle サーバー、MySQL、XML ファイル、Web/WCF サービスなどを含めることができます。
すべてを実装するのにかかる時間の点で非常に生産的に見える LINQ to SQL を研究することは、生成されたクラスと CustomDataContext クラスの間の深い依存関係を発見するまではうまくいくようです。
このようなシナリオで LINQ to SQL を使用するにはどうすればよいですか?