こんばんは。今回は、EntityFrameworkCoreを紹介したいと思います。
EntityFrameworkCore
EntityFrameworkの.NET Core版であり、オープンソースであり、プラットフォームに依存しません。
一言でいうのが難しいのですが、.NET開発におけるデータアクセス機能なのであり、ORマッパーでもあり、データマイグレーションツールであったりもします。
EntityFrameworkを使用した開発方法で、データベースファースト、モデルファースト、コードファーストという開発スタイルがあります。
データベースファーストは、データベースからデータモデルクラスを作成します。下記のようなコマンドを実行することでテーブルに対応するデータモデルクラスとコンテキストクラスが作成されます。多くの場合のシステム開発はこのスタイルだと思います。
dotnet ef dbcontext scaffold [接続文字列] Microsoft.EntityFrameworkCore.SqlServer -o Models
モデルファーストは、データベースが作成されていない状態でモデルクラスから作成します。ビジュアルツールを使用してモデルを作成するようです。VSCode使用者としてはよくわかりません。
コードファーストは、データベースが作成されていない状態でソースコードからデータベースを作成します。今回サンプルプログラムを作成してみたいと思います。
コードファーストサンプルアプリ
参考サイト:新しいデータベースを使用した ASP.NET Core での EF Core の概要
まずはプロジェクトファイルに必要な記述を追加して「dotnet restore」します。
EntityFrameworkのツールをインストールします。
EntityFrameworkのツールを使用してデータベースを作成し、テーブルを作成します。
データベースの作成が完了しました。ログを見てみるとテーブル作成のDDLなどが流れていることが確認できます。
次に「dotnet tool install -g dotnet-aspnet-codegenerator」でコントローラーとビューを作成するツールをインストールし、作成します。
作成に成功しました。(必要なパッケージがなかったりで何度かエラーになりましたが)
下記が自動作成されたBlogsControllerになります。
ビューはCRUDに対応したビューが作成されます。「dotnet run」でアプリケーションを起動します。
こんな感じで画面が表示されます。
登録画面になります。
実際に登録してみました。問題なく動作しました。削除も。
おわりに
今日は、EntityFrameworkCoreを紹介しました。コードファーストでサンプルアプリを作成しました。コードを書くことでEntityFrameworkCoreがデータベースを作成してくれました。