可能性の重複:
EF 4.1 Code-first vs Model/Database-firstEF CodeFirstの長所と短所
私はちょうど、私はEF CodeFirstの利点は何 について専門家から聞きたいEF 4.0 CodeFirstについての学習を開始し、欠点?
可能性の重複:
EF 4.1 Code-first vs Model/Database-firstEF CodeFirstの長所と短所
私はちょうど、私はEF CodeFirstの利点は何 について専門家から聞きたいEF 4.0 CodeFirstについての学習を開始し、欠点?
私はそれぞれのアプローチが異なるシナリオに適していると思う:データベース-最初またはモデルファーストを推奨している
シナリオ:安定したスキーマと
シナリオに:
変更することができます変化する/文脈依存の目的。
更新:
:
私はいつもデータセントリックのアプローチを主張してきましたが、これは長所と短所がどこから来たのかと考えています。
データベース設計と開発の強みがあれば、データベーススキーマから開発する方が簡単で直感的です。しかし、オブジェクトやクラスをよりよく考える場合や、クラスモデルから直接作業している場合は、CodeFirstの観点から始めるほうがよいでしょう。
個人的には、自分のクラスを生成する「DataFirst」からのCodeFirstの観点から、より多くの変更を加える必要があることがわかりました。
主な相違点は、コード・ファーストではすべてをコードで定義する必要がありますが、モデル/データベースではまずXML/Designerですべてを定義し、コードでは最小限のもののみを定義する必要があります。
たとえば、双方向ナビゲーションプロパティを使用する場合は、それぞれのエンティティにそのコードを記述する必要があります。これは、他の方法を使用するときに自動的に生成されます。
私は電源コードが最初にあなたを与えますが、ほとんどの時間私はすべてのことをするのに気にすることはできません。
ほとんどの場合、まったく同じことが起こります。それはあなたがそれをモデル化する方法です。
もう1つの欠点は、(現在)コードで最初に変更を加えたときに、テーブルを削除して再作成することです。すべてのデータを失う(もちろん、データベースをシードすることはできますが、手動で入力したデータは返されません)。これは、Code First Migrations製品がリリースされたときに解決されます。
デメリットの1つは、データベースを削除することに同意しません。これは完全に構成可能なもので、デフォルトではデータベースを削除しませんが、モデルが最初に変更されたときにデータベースが最初に行い、変更を検出したときと同じようにエラーがスローされます。 –
@WouterdeKort - 私の指摘は、データベースではまずデータベースの変更がモデル内で簡単に更新され、新しいコードが生成されたということでした。コードでは、データベースを削除して再作成しない限り、より手作業のプロセスです。コードとデータベースの両方で手動で変更する必要があります。 –
がhttp://stackoverflow.com/questions/5446316/ef-4を参照してくださいあまり関係あり-1 code-first-vs-model-database-first –
@WouterdeKortこれは私が探しているものです。 – saber