7

私は非常に単純な ASP.Net MVC4 アプリケーションをデータベース ファースト アプローチ (既存の DB を使用) で開始しました。.edmxADO.Net Entity Data Model テンプレートを使用して生成しました。プロセスはオプションのxxxxxxx.Designer.cs下にファイルを作成しました。xxxxxxx.edmxただし、.cs ファイルは空で、次のメッセージが表示されます。

// Default code generation is disabled for model 'C:\Visual Studio 2010\Projects\xxx\DProject\Models\BIReportDataModel.edmx'. 
// To enable default code generation, change the value of the 'Code Generation Strategy' designer
// property to an alternate value. This property is available in the Properties Window when the model is
// open in the designer.

xxxxxxx.Designer.csメッセージに従って、ファイル内のコードを生成するプロパティを変更しました。

質問:

  1. これは正しいことですか?このファイルの目的は何ですか?
  2. 「コード生成項目の追加」を右クリックし、EF DBContext ジェネレーターを選択して、.edmx デザイナー ページから厳密に型指定された DBContext クラスを生成する必要もありますか?

データベース ファースト アプローチのプロセスとは具体的にどのようなものですか?

私は多くの投稿/ブログ/チュートリアルを見てきましたが、すべてが非常に混乱しているようで、ほとんどが CodeFirst アプローチです。

4

2 に答える 2

7

Code First は、技術的にはデータベースが最初であり、データベースを持っていません (柔軟性があります)。POCO (プレーンな古い C# オブジェクト) を作成するだけです。これらのクラスは、データベースが存在するかどうかに関係なく、データベース テーブル スキーマ構造を必要に応じてマップします。自分が何をしているのかわからない場合は、おそらくこれをしたくないでしょう。

EDMXは、以前はデザイナーが読み込まれるというものでしたが、VS 2012 以降では tt ファイルがデフォルトです。それらを実際に活用するには、nuget の tt エディターを使用する必要があります。

または、次のことをお勧めします

 1. Open the EDMX file - double click
 2. Right Click in the EDMX diagram and click on Properties 
 3. In the properties window change the "Code Generation Strategy" from  None to Default
 4. Delte the tt files as you don't want both entities / contexts in project.
于 2013-12-31T06:37:11.377 に答える