实体框架核心多个DbContext迁移在同一个数据库中

时间:2017-06-22 08:52:51

标签: entity-framework .net-core entity-framework-core

在Entity Framework 6中,您可以为DbContext指定一个ContextKey,这样当一个数据库用于多个DbContexts时,Migrations表就会知道哪个迁移针对的是DbContext。

我花了最后几个小时试图弄清楚你是如何在实体框架核心中实现相同目标的,但是还没有完成它并缺乏文档。

EF Core中的新迁移表只有两列 - MigrationId,ProductVersion。

我认为HasDefaultSchema是答案,但似乎并不是。

想法?

1 个答案:

答案 0 :(得分:4)

以前,Entity Framework在数据库中存储了模型的快照。这导致实体框架每次都必须查询数据库,以便计算出已经运行的迁移。

在EF7中,迁移历史记录存储在代码中的快照中(以及存储在熟悉的“迁移”文件夹中的现有迁移)。

每次更新模型并创建迁移时,快照文件都会更新。因此,不需要在早期版本的Entity Framework中使用ContextKey。

可爱。