質問: asp.net mvc 3アプリケーションのいくつかのモジュール:今はPOCOクラスでEFを使用していますが、将来はADO.NETやその他のORMツール(DAPPER 。ネット)。 私たちが直面している問題は、コレクションクラスがEFを介してロードされることに依存するビュー、これらのエンティティクラスが他のADO.NETまたはORMツールを使用したEFとまったく同じ方法でロードされるべき戦略。 私が望むのは、データアクセスレイヤーの変更を最小限に抑えて、EF&ADO.NETを切り替えることです。私のViewsがそれによって効果を発揮するのを望まないからです。
回答: リポジトリデザインパターンを使用して、データアクセスレイヤの実装を非表示にする必要があります。リポジトリは、同じPOCOを返し、フードの下でどのデータアクセスレイヤーを使用しているかにかかわらず、同じ操作規約を持ちます。これは、実際のPOCOを使用していて、遅延ロードのための仮想メソッドを持たない場合にはうまく動作します。この作業を行うには、エンティティ上の依存コレクションのロードを明示的に処理する必要があります。