Entity-framework-multiple-dbcontext
提供:Dev Guides
Entity Framework-複数のDbContext
この章では、アプリケーションに複数のDbContextクラスがある場合に、データベースに変更を移行する方法を学習します。
- 複数のDbContextは、Entity Framework 6.0で初めて導入されました。
- 複数のコンテキストクラスは、単一のデータベースまたは2つの異なるデータベースに属する場合があります。
この例では、同じデータベースに対して2つのContextクラスを定義します。 次のコードには、StudentとTeacherの2つのDbContextクラスがあります。
上記のコードを見るとわかるように、「学生」と「教師」という2つのモデルがあります。 それぞれが特定の対応するコンテキストクラスに関連付けられます。つまり、StudentはMyStudentContextに関連付けられ、TeacherはMyTeacherContextに関連付けられます。
同じプロジェクト内に複数のContextクラスがある場合、データベースの変更を移行するための基本的なルールを次に示します。
- enable-migrations -ContextTypeName <ネームスペース付きのDbContext-Name> MigrationsDirectory:<Migrations-Directory-Name>
- Add-Migration -configuration <DbContext-Migrations-Configuration-Class-withNamespaces> <Migrations-Name>
- Update-Database -configuration <DbContext-Migrations-Configuration-Class-withNamespaces> -Verbose
パッケージマネージャーコンソールで次のコマンドを実行して、MyStudentContextの移行を有効にしましょう。
実行されたら、移行履歴にモデルを追加します。そのためには、同じコンソールでadd-migrationコマンドを実行する必要があります。
ここで、データベース内のStudentテーブルとTeachersテーブルにデータを追加しましょう。
上記のコードを実行すると、次の図に示すように、2つの異なるモデルに対して2つの異なるテーブルが作成されていることがわかります。
理解を深めるために、上記の例を段階的に実行することをお勧めします。