私の現在の仕事では、EntityFrameworkとDbContextの上にRepository/UoWパターンを実装しました。特定のORMソリューションに依存したくない場合は、私がこれで見つけた唯一の有効な理由があります。私はちょうど誰かがこれをやったかどうかを見たいと思っていました。プロジェクトの途中で(例えば1年後)、「EntityFrameworkからNHibernateに切り替える必要があるので、私はリポジトリパターンを実装してうれしいです。 " (LINQを使用して)結合の基本的なクエリを除いて、私はデータベースのテーブルを作成し、リポジトリを作成し、サービスを書く必要があるので抽象化のこの余分な層が感じる(典型的な3ティアードアーチ)とコントローラとビューのような必要なフロントエンド。誰かが開発中にORMソリューションを切り替えたことはありますか?
更新:
誰が、なぜ前に、プロジェクトにORM年代を切り替える持っているかどうかを知りたいですか?
エンティティモデルが存在する場合、基本的なCRUD操作ユニットでテストされたリポジトリを15〜20分で作成できます。私はそれが時間の無駄だとは思わない。あなたが同意しないなら、私の答えを見てください。 – BentOnCoding
CUD操作では、一般的なリポジトリで十分です。なぜより多くを作成するのですか?読み込みでは、 'IQueryable'を何らかの方法で使用しています。それ以外の場合は、すべてのレイヤーの変更が必要になるためです。 –
リポジトリの複雑さによって異なります。私は一般的なリポジトリの大きなファンです。ほとんどの場合、呼び出しコードでトランザクションスコープを制御し、DBにコミットすることができますが、ときどきコントロールトランザクションスコープのようなものを実行し、すべてのメソッドが自分のDbContextのSaveChanges()を呼び出すとします。これは、一般的なリポジトリが私の要件を満たさない状況です。 – BentOnCoding