Entity-framework-entity-database-first-approach

提供:Dev Guides
移動先:案内検索

Entity Framework-データベースファーストアプローチ

この章では、Database Firstアプローチを使用したエンティティデータモデルの作成について学習します。

  • Database Firstアプローチは、Entity Data Modelに対するCode FirstおよびModel Firstアプローチの代替手段を提供します。 プロジェクト内のデータベースからモデルコード(クラス、プロパティ、DbContextなど)を作成し、それらのクラスがデータベースとコントローラー間のリンクになります。
  • Database Firstアプローチは、既存のデータベースからエンティティフレームワークを作成します。 モデル/データベース同期やコード生成など、他のすべての機能は、モデルファーストアプローチで使用したのと同じ方法で使用します。

簡単な例を見てみましょう。 次の図に示すように、3つのテーブルを含むデータベースが既にあります。

新しいコンソールプロジェクト

  • ステップ1 *-DatabaseFirstDemo名で新しいコンソールプロジェクトを作成しましょう。
  • ステップ2 *-モデルを作成するには、まずソリューションエクスプローラーでコンソールプロジェクトを右クリックし、[追加]→[新しいアイテム]を選択します…

モデルの作成

  • ステップ3 *-中央のペインからADO.NET Entity Data Modelを選択し、[名前]フィールドにDatabaseFirstModelという名前を入力します。
  • ステップ4 *-[追加]ボタンをクリックして、[エンティティデータモデルウィザード]ダイアログを起動します。

モデルの内容

  • ステップ5 *-データベースからEF Designerを選択し、[次へ]ボタンをクリックします。

エンティティモデルウィザード

  • ステップ6 *-既存のデータベースを選択し、[次へ]をクリックします。

既存のデータベース

  • ステップ7 *-Entity Framework 6.xを選択し、[次へ]をクリックします。

Entity Framework

  • ステップ8 *-含めるすべてのテーブルビューとストアドプロシージャを選択し、[完了]をクリックします。

エンティティモデルとPOCOクラスがデータベースから生成されていることがわかります。

POCOクラス

program.csファイルに次のコードを記述して、データベースからすべての生徒を取得します。

using System;
using System.Linq;

namespace DatabaseFirstDemo {

   class Program {

      static void Main(string[] args) {

         using (var db = new UniContextEntities()) {

            var query = from b in db.Students
               orderby b.FirstMidName select b;

            Console.WriteLine("All All student in the database:");

            foreach (var item in query) {
               Console.WriteLine(item.FirstMidName +" "+ item.LastName);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
         }
      }
   }
}

上記のプログラムが実行されると、次の出力が表示されます-

All student in the database:
Ali Khan
Arturo   finand
Bill Gates
Carson Alexander
Gytis Barzdukas
Laura Norman
Meredith Alonso
Nino Olivetto
Peggy Justice
Yan Li
Press any key to exit...

上記のプログラムを実行すると、以前にデータベースに入力されたすべての生徒の名前が表示されます。

理解を深めるために、上記の例を段階的に実行することをお勧めします。