【发布时间】:2018-03-14 03:01:05
【问题描述】:
我正在开发一个使用 EFCore 2.1.0-preview1-final 代码优先方法的项目。就像在 EF6(和以前的版本)中一样,我想确保我的 DbContext(和模型)与数据库的兼容性。
在 EF6 中默认启用它,并且可以使用 Database.CompatibleWithModel(false); 将其停用。据我所知,EF 使用存储模型信息的__MigrationHistory 表。 EFCore 在__EFMigrationsHistory 表中没有可以提供此类信息的列。
我在 EFCore 中找不到任何有关兼容性检查的信息。但我想确保兼容性,因为经过一些测试,它似乎默认没有启用(或确实存在)。我通过手动添加和删除数据库中的一些列并在修改后执行应用程序来测试它。我 - 出乎我的意料 - 没有收到任何异常。
有人知道如何实现从模型到数据库的兼容性检查,反之亦然,就像在 EF6 中的 EFCore 一样? 或者可以提供一些有用的链接以获取有关它的更多信息或为什么它在 EFCore 中不存在(因为它不是必需的)?
【问题讨论】:
-
EF6 没有做那么多。它只是确保自上次 EF 更改数据库架构以来模型没有更改。它不会检测在 EF 之外进行的架构更改。
-
嗯,好的。我不知道如何使用 EF Core 做同样的事情。也许我必须检查 EF 中的实现。
标签: c# entity-framework ef-code-first entity-framework-core