9

EF4コードファーストアプローチを使用することの長所と短所を知りたいです。遅延読み込み、関連エンティティの読み込みなど、EF4で生成されたクラスが提供するすべての機能を複製できますか?

ありがとう

4

3 に答える 3

7

長所

  1. 軽量エンティティクラスまたはPOCOベース。
  2. エンティティクラスを生成するためにEFに依存するのではなく、自分でコーディングするため、エンティティクラスをより細かく制御できます。これは、データ注釈を行うために部分クラスを定義する必要がないことを意味します。
  3. どこにもマッピングを指定する必要がないオプション。設定より規約が引き継ぎます。
  4. DbContextはリポジトリパターンに従います。
  5. 遅延読み込み、関連するエンティティの読み込みはすべてあなたに代わって行われます。たとえば、PostモデルはPOCOでAuthorモデルを宣言でき、EFコードは最初にこの関係を自動的にマップします。繰り返しになりますが、コンベンションを使用することで生産性が向上します。
  6. グリーンフィールドアプリケーションに最適です。
  7. ASP.NETMVCビューの生成はうまく機能します。
  8. ModelBinderは通常どおり動作します。

短所

  1. FluentnHibernateのようにデータベースマッピング規則をカスタマイズするためのAPIサポートはありません。
  2. 既存のデータベースにマップするのは少し難しいです(これはリリースバージョンで変更される可能性があります)。

サンプルコードとEF4.0コードを使用した既存のデータベースへのマッピングについては、まずこのブログ投稿を参照してください。 http://theminimalistdeveloper.com/2010/07/28/how-to-map-pocos-to-existing-databases-in-entity-framework-4-0-code-first-and-asp-net-mvc- 2/

于 2010-08-11T12:47:40.517 に答える
1

短所:

  • EDMX がないため、ビューを事前生成することはできません
  • Go-Live のライセンスがまだありません。うまくいけば、これはすぐに変わるでしょう。

長所

  • 固定スキーマがないため、実行時に動的に構築できます。

他のほとんどのことはまったく同じです (遅延読み込み、明示的読み込みなど)。さらにいくつかは個人的な好みの問題です (API)。

于 2010-07-26T13:37:16.170 に答える
0

Lazy Loading について具体的に尋ねたので、Working with Lazy Loading with Entity Framework Code First を示す記事をここに示します。ここでは、デフォルトで有効になっています。あなたの質問のその部分に具体的に答えるために、はい、Code First を使用しても遅延読み込みの利点が得られます。実際、投稿が示すように、この機能を非常にきめ細かく制御できます。

于 2011-10-03T03:08:00.753 に答える