これは可能ですか?
例はありますか?私の検索はこれまでのところ無益であることが証明されています...
私がこのアプローチを使用している理由は、MVC 3 アプリのレガシー データベースに固執する必要があるためですが、非常に複雑な関連付けと継承階層がいくつかあるため、手動で行うのではなく EF でマッピングを生成する必要があります。単体テストにリポジトリ パターンを使用したい。アドバイスをいただければ幸いです。
これは可能ですか?
例はありますか?私の検索はこれまでのところ無益であることが証明されています...
私がこのアプローチを使用している理由は、MVC 3 アプリのレガシー データベースに固執する必要があるためですが、非常に複雑な関連付けと継承階層がいくつかあるため、手動で行うのではなく EF でマッピングを生成する必要があります。単体テストにリポジトリ パターンを使用したい。アドバイスをいただければ幸いです。
「リポジトリ パターン Entity Framework 4.1」などを検索して、「データベース ファースト」という用語を忘れると、検索が実り多いものになります。クラスを手動で作成する (コード ファースト) か、DbContext ジェネレーターを使用してクラスを生成する (データベース/モデル ファースト) かは問題ではありません。最終的に、リポジトリはこれらのクラスを使用します。DbSet
一般的なリポジトリの特殊化であるモデルの を除いて、意味のあるリポジトリを作成するジェネレーターはありません。モデル クラスとビジネス ニーズに基づいて、手動で記述する必要があります。
そのため、コード ファーストまたはデータベース/モデル ファーストのどちらのアプローチに従っても、リポジトリの設計には影響しません。
EF と単体テストを使用したリポジトリ パターンについては、これを警告および出発点として読み、その回答の多くのリンクをたどることをお勧めします。
You could still use Code-first style if you want : code-first lets you reverse-engineer from an existing database to get you started. Or if you already have an EDMX, you can generate your code-first classes with a T4 template (packed with EF 4.1). Or, again, use T4 templates to generate POCOs and keep database-first as a strategy.
But I think you could still easily achieve a repository pattern even with database-first style. I think your main problem will be in the dependance to some entity framework DLLs if you do (which you could decide is not a problem).