Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架-检查挂起的迁移_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

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
。这与最初的要求不符!