7

私は EF 4.1 のビデオとチュートリアルをいくつか見ていましたが、CodeFirst の利点を理解していません (DB が非常に小さい 3 ~ 4 テーブルであり、最初に DB を作成するのが面倒な場合を除いて)。

ほとんどの場合、これまでのところ最善のアプローチは、ある種のデータベース エディターでデータベースを作成することです。これは、エンティティ モデルで編集するよりも確実に高速であり、EF はすべての関係を取得し、関連付けを正しく作成します。命名規則などに課題があることは承知していますが、すべてがコードのように見え、コーディングするには多すぎるため、Code First を管理するのは非常にわかりにくいと感じています。

CodeFirst ができて、Db first ができないことは何ですか?

4

4 に答える 4

21

CodeFirst は、DB first ができないことは何もできません。結局のところ、どちらも Entity Framework を使用しています。

codefirst を使用する主な利点は次のとおりです。

  • 開発速度- コーディングを開始するだけで DB を作成することを心配する必要はありません。DBA の経験があまりないプログラミングのバックグラウンドを持つ開発者に適しています。また、データベースの自動更新も備えているため、モデルが変更されるたびに、DB も自動的に更新されます。
  • POCO - コードは非常にクリーンで、自動生成されたコードが大量に生成されることはありません。各クラスを完全に制御できます。
  • シンプル- 更新または維持する edmx モデルがありません

詳細については、Code-first vs Model/Database-first およびこちらCode-First or Database-First, how to choose? を参照してください。

于 2011-07-02T10:31:57.147 に答える
9

DataCentric アプローチから来ているので、人々が Code First Approach で作成するのを好むのはいつも奇妙だと思います。データベースを設計するとき、クラスであるかのように、各テーブルが何であるかをすでに考えています。それらがどのようにリンクし、データがどのように流れるか。データベースを通じてシステム全体をイメージできます。

私は常に、ゼロから取り組み、基盤を正しく構築すれば、他のすべてが続くと教えられてきました. 私は多くの異なる企業のためにたくさんの異なるシステムを作成していますが、その速度は、強力なデータベース モデルを取得したら、ビュー/ストアド プロシージャを作成するカスタム コード ジェネレーターを実行するという事実に基づいています。私のController/BusinessLayer/DataLayerと同様に、これらすべてをまとめて、フロントエンドを作成するだけです。

最初にシステム全体をコードで作成してデータベースを生成し、他のすべてのアイテムを作成する必要があるとしたら、もっと時間がかかると思います。私が正しいと言っているわけではありません。システムを開発するためのより迅速で経験豊富な方法がおそらくあると確信していますが、これまでのところ、私はそれを見つけていません。

お話させていただきありがとうございます。私の見解が少しでもお役に立てば幸いです。

于 2014-07-11T20:06:59.903 に答える
2

CodeFirst 用の EntityFramework 4.3 で移行が有効になったため、モデルからデータベースへの変更をシームレスに簡単に更新できます参照 1

詳細なビデオ:完全な参照ビデオ

于 2012-02-23T20:23:40.040 に答える
1

まあ、それはあなたのプロジェクトに依存します。シンターゼをいくつかのアイデアにしようと思います:

  • エンティティ クラスを完全に制御できます。T4 テンプレートを更新したり、部分クラスを使用したりする必要はありません。</li>
  • EDMX モデルは EF7 で廃止され、CodeFirst モデルが優先されます。そのため、EF への移行を計画している場合、または EF7 を使用する可能性のあるプロジェクトを近い将来開始する場合は、覚えておいてください。
  • 複数の開発者がモデルで作業している場合、マージが簡単になります +/- 注釈とマッピングは手動で行う必要があります。コード ファーストのアプローチはより軽く (肥大化が少なく)、物事をシンプルに保つことができます (ビジュアル モデルは望ましくない複雑さを隠す可能性があります)。Fluent API に対応。
  • Power Tools を使用してモデルを視覚化することはできますが、モデルは読み取り専用です。モデルへの変更はすべて手動で行う必要があります (最初のエンティティをゼロから生成することもできます)。部分的なモデル (ダイアグラム) はありませんが、モデルは十分に小さいはずです。
  • データベース ファーストは、SP および関数の結果とより適切に統合されているようです (EF6 ではいくつかの改善が行われています)。
于 2015-09-10T08:14:12.947 に答える