エンティティフレームワーク-コードファーストアプローチ
Entity Frameworkは、エンティティモデルを作成するための3つのアプローチを提供し、それぞれに長所と短所があります。
- コードファースト
- データベースファースト
- モデルファースト
この章では、コードファーストのアプローチについて簡単に説明します。コードでDesignerを使用することを好む開発者もいれば、コードを使用することを好む開発者もいます。これらの開発者向けに、EntityFrameworkにはCodeFirstと呼ばれるモデリングワークフローがあります。
コードファーストモデリングワークフローは、存在しないデータベースを対象とし、コードファーストがデータベースを作成します。
空のデータベースがある場合にも使用でき、CodeFirstは新しいテーブルも追加します。
Code Firstを使用すると、C#またはVB.Netクラスを使用してモデルを定義できます。
オプションで、クラスとプロパティの属性を使用するか、FluentAPIを使用して追加の構成を実行できます。
なぜコードファーストなのか?
コードファーストは、実際にはパズルのピースのセットで構成されています。まず、ドメインクラスです。
ドメインクラスは、EntityFrameworkとは何の関係もありません。それらはあなたのビジネスドメインの単なるアイテムです。
したがって、Entity Frameworkには、これらのクラスとデータベース間の相互作用を管理するコンテキストがあります。
コンテキストはCodeFirstに固有のものではありません。これはEntityFrameworkの機能です。
Code Firstは、コンテキストが管理しているクラスを検査するモデルビルダーを追加し、次に一連のルールまたは規則を使用して、それらのクラスと関係がモデルをどのように記述し、そのモデルをデータベースにマップするかを決定します。
これはすべて実行時に行われます。あなたはこのモデルを見ることは決してないでしょう、それはただ記憶の中にあります。
Code Firstには、必要に応じてそのモデルを使用してデータベースを作成する機能があります。
また、コードファーストマイグレーションと呼ばれる機能を使用して、モデルが変更された場合にデータベースを更新することもできます。