2012-01-12 7 views
0

可能性の重複:
EF 4.1 Code-first vs Model/Database-firstエンティティフレームワーク - 最初にコードするか、モデルにするか?

私はいくつかの研究をしたが、答えは私を満たしていませんでした。 私はエンティティフレームワークを使用して自分のasp.net mvcアプリケーションを開始し、データベースを操作しました。私はそのデータベースからモデルを作成するよりも、dbを作成することから始めました。まあ私はそれが "モデルファースト"と呼ばれることを知っています。私は学校からそれをやるという第2の方法を知っています(コード1番)。私の講師は今日、モデルファーストの方法は時代遅れであると言いました。まあ本当ですか?または、おそらく:コードはまず利点がありますか?あなたの意見では、どちらが良いのでしょうか?

+3

IMHO、最初にコードするか、後で泣かせます。 – Yuck

+0

dbからモデルを作成した場合は、最初にモデルではなくデータベースです。 –

答えて

0

具体的には、EFコードでは最初にコードを参照し、モデルは最初にデータベースを参照します。

これは実際にはプロジェクトによります。 dbがアプリケーションのコアとして扱われている場合、またはdb固有の機能を使用している場合は、モデルの第1のアプローチよりも意味があります。

ドメインモデルをアプリケーションのコアとして扱い、dbを永続ストレージの形式にしておくと、コードの最初のアプローチよりも実用的です。

注:この概念は、通常、モデルファースト(ドメイン/コード)およびdbファースト(dbスキーマ)と呼ばれます。 EFでは、これはモデルがdbスキーマを参照するため、ドメインモデルではなく、コードがコードを参照するので、これは多少混乱します。

+1

いいえ、モデルファーストとコードファーストは同じものではありません。モデルファーストとデータベースはどちらも.edmxファイルを使用しますが、コードファーストは使用しません。 –

+0

は、コンセプトと実装の違いのように見えます。 EFでは、コードとしてドメインを参照し、dbとしてモデルを参照します。概念的には、モデルはコードであり、dbはdbです。私はEF定義の点で私の答えを更新します。 –

+2

いいえ、それは間違っています。コード・ファーストでは、モデルはフル・コード・マッピングによって定義されます。 Model-firstでは、モデルはXMLマッピング(データベースにあるように)で定義されます。最初のデータベースとモデルの唯一の違いは、まずどこから始めるかです。まず、データベースでデータモデルを定義し、それをxml(.edmxファイル)にリバースエンジニアリングします。モデルではまず、デザイナーでデータモデルを定義します(ハードコアの場合はxmlを手作業でコーディングしてからxmlからデータベースを生成します)。どちらの場合も、EntityクラスはXMLから生成されます。コードファーストにはエンティティクラスが最初に作成されています。 –

0

DBは最初に古くはありません。実際には、多くの企業プロジェクトにとって、これは道のりです。

最初から自分のために何かを構築する場合は、最初にコードを作成する方が良いでしょう。

0

Entity Frameworkは、1)データベースを最初に、2)モデルを最初に、そして3)コードを最初に提供します。 2 edmxファイルを作成します データベース第1版:エンティティデータモデル(edmx:StorageModels)は、既存のデータベースから作成されます。 モデル1:概念データモデル(edmx:ConceptualModels)は、デザイナとマッピングが指定されて作成されます。これからデータベースが生成されます。 最初のコード:.NETクラス(.edmxファイルなし)を作成します。これからデータベースが生成されます。

'Old school'はADO.NET DataSet/DataTableを使用します。

最も高速なデータアクセスは、DataReaderを使用し、独自のデータアクセスを作成しています。 DataReaderを使用して独自のPOCOを設定するよりも、フレームワークは高速になりません。

関連する問題