Asp.net-core-setup-entity-framework

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

ASP.NET Core-Entity Frameworkのセットアップ

この章では、アプリケーションをセットアップおよび構成して、SQL Serverデータベースからデータを保存および読み取ります。

データベースを操作するには、Entity Frameworkを使用します。EntityFrameworkは、新しい.NET Frameworkで動作するように書き直されています。 過去にEFと仕事をしたことがあるなら、おなじみの作品がたくさんあります。

  • このアプリケーションでは、SQL Server LocalDBを使用します。 SQL Serverに慣れていない場合は、インスタンスに新しいデータベースを作成する権限がある限り、ローカルデータベース、リモートデータベースなど、任意のデータベースを使用できます。
  • LocalDBは、開発者向けに最適化されたSQL Serverの特別エディションです。
  • Visual Studio 2015およびそのCommunityエディションでさえ、デフォルトでLocalDBをインストールします。

LocalDBを確認するには、Visual Studioの[表示]→[SQL Serverオブジェクトエクスプローラー]メニューオプションに移動します。

SQL Serverオブジェクトエクスプローラーの表示

これは、データベースを探索したり、データを閲覧したり、データベース内にデータを作成したりできるため、SQL Serverを使用する必要がある場合に最適なツールです。 最初に開いたときは少し時間がかかりますが、LocalDBに自動的に接続する必要があります。

Entity Frameworkのインストール

Entity Frameworkを使用する最初の手順は、NuGetパッケージマネージャーからEntity Framework NuGetパッケージをインストールするか、 project.json ファイルを直接編集することです。

次の2つのパッケージを追加して、project.jsonファイルを直接編集しましょう。

Project Json

*EntityFramework.Commands* パッケージは、C#Entityクラスに基づいてデータベーススキーマを作成するなど、Entity Frameworkでタスクを実行するのに役立ちます。これらのタスクは、EntityFramework.Commandsパッケージ内にロジックが存在するコマンドラインツールから利用できます。

このコマンドラインツールを使用するには、次のスクリーンショットに示すように、project.jsonのコマンドセクションに追加のエントリを作成する必要があります。

コマンドラインツール

これを「ef」と呼び、このEntityFramework.Commandsパッケージにマップします。 この「ef」を使用して、EntityFramework.Commands内で使用可能なロジックの一部にアクセスできます。

以下は、project.jsonファイルの実装です。

{
   "version": "1.0.0-*",
   "compilationOptions": {
      "emitEntryPoint": true
   },

   "dependencies": {
      "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
      "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
      "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
      "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
      "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
      "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
      "EntityFramework.Commands": "7.0.0-rc1-final"
   }

   "commands": {
      "web": "Microsoft.AspNet.Server.Kestrel"
   },

   "frameworks": {
      "dnx451": { },
      "dnxcore50": { }
   },

   "exclude": [
      "wwwroot",
      "node_modules"
   ],

   "publishExclude": [
      "**.user",
      "**.vspscc"
   ]
}