0

新しいプロジェクトを作成する必要があり、(いつものように) 既存の SQL Server データベースを使用しています。

以前は EF Code First を使用してデータベースに接続し、EDMX モデル デザイナーを開き、右クリック --> [コード生成項目を追加] を使用していました。( http://weblogs.asp.net/jgalloway/archive/2011/02/24/generating-ef-code-first-model-classes-from-an-existing-database.aspx ) 簡単です。

しかし今、リバース エンジニアリング コード ファースト (クールな名前!) を実行して同じものを取得できる EF Power Tools と呼ばれるものがあることを発見しました ( http://msdn.microsoft.com/en-us/data/jj200620 ) 。

2つのオプションの違いを知っていますか? どちらの方がよいですか?

前もって感謝します。

(この質問が以前に尋ねられた場合は申し訳ありませんが、見つけられませんでした。)

4

2 に答える 2

2

違いは、edmx のアプローチはコード ファーストではなく、DbContextAPI を使用したデータベース ファーストであるということです。モデル変更のソースとして常にデータベースを使用します。

EF Power Tools は、真のコード ファースト モデルを生成しDbContextます。それ以降は、最初にクラス モデルを変更し、それに応じてデータベースを変更します (たとえば、EF 移行によって)。

どちらも「より良い」ではありません。DbContextAPI は よりも操作が簡単ですObjectContextが、どちらのアプローチも前者を使用します。データベースを最初に処理するか、コードを最初に処理するかを選択するのはあなた次第です。これは個人の好みの問題であり、データベース構造を誰が管理しているかによって異なります。データベースを最初に使用すると、他の誰かがデータベース構造に加えた変更に簡単に対応できます。

于 2013-02-06T10:49:58.920 に答える
1

ワークフローが最初にデータベースに進む限り、@ Gert-Arnoldが言ったことに追加します:

データベースを最初に使用すると、他の誰かがデータベース構造に加えた変更に簡単に対応できます。

他の誰かがデータベースの変更を管理している場合、EF デザイナーを使用する方がはるかに簡単です。更新されたデータベースを取得したら、EF デザイナーを右クリックして、データベースからモデルを更新します。ソース管理を使用すると、何が変更されたかを簡単に確認できます。

また、データベースからテーブルのサブセットのみが必要な場合は、リバース エンジニアリングによって多くの作業が発生し、コンテキストからクラスとプロパティを削除する必要があります。

コード ファーストによる既存のデータベースへの再リバース エンジニアリングは、何が変更され、コンテキストを使用するコードをどのように更新する必要があるかを理解しようとするのが面倒であることがわかりました。

于 2013-10-23T17:23:01.443 に答える