C# 实体框架-检查挂起的迁移
在我们的生产环境中,我们有一个自动部署脚本,可以关闭站点,运行迁移,然后使其重新联机。我们希望在不需要运行任何迁移的情况下,通过切换到新代码来避免关闭站点C# 实体框架-检查挂起的迁移,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,在我们的生产环境中,我们有一个自动部署脚本,可以关闭站点,运行迁移,然后使其重新联机。我们希望在不需要运行任何迁移的情况下,通过切换到新代码来避免关闭站点 实体框架是否有类似“更新数据库”的命令,允许我们检查是否有要运行的迁移?DbMigrator类有GetPendingMigrations方法,听起来正是您要查找的方法。应该是这样的 YourMigrationsConfiguration cfg = new YourMigrationsConfiguration(); cfg.TargetD
实体框架是否有类似“更新数据库”的命令,允许我们检查是否有要运行的迁移?DbMigrator类有
GetPendingMigrations
方法,听起来正是您要查找的方法。应该是这样的
YourMigrationsConfiguration cfg = new YourMigrationsConfiguration();
cfg.TargetDatabase =
new DbConnectionInfo(
theConnectionString,
"provider" );
DbMigrator dbMigrator = new DbMigrator( cfg );
if ( dbMigrator.GetPendingMigrations().Any() )
{
// there are pending migrations
// do whatever you want, for example
dbMigrator.Update();
}
我使用
DbContext.Database.CompatibleWithModel()
和EF 6.1.3我还没有时间实现这一点,但这看起来就像我正在寻找的一样。如果手动添加迁移步骤(例如,枚举值已更改,您可以应用脚本更新数据库中的相应字段)DbContext.Database.CompatibleWithModel()
将返回true
。这与最初的要求不符!