我最近编写了一个带有代码优先后端(SQL CE 4.0 数据库)的 WPF 应用程序。该应用程序现已在野外使用,并被非技术人员使用。
我做了一些更改,我需要添加一个迁移以反映我已经成功完成的更改。Update-Database
只需使用命令,我就可以让它在我的本地机器上正常工作。
当我开始部署更新时,这将如何工作?我似乎无法弄清楚我的客户数据库将如何迁移。每当我在不是我的开发机器的机器上运行时,我都会收到以下错误;
无法更新数据库以匹配当前模型,因为存在待处理的更改并且自动迁移已禁用。将挂起的模型更改写入基于代码的迁移或启用自动迁移。将 DbMigrationsConfiguration.AutomaticMigrationsEnabled 设置为 true 以启用自动迁移。
Ps 我绝对不想启用自动迁移;)
更新 - -
这是我的初始化程序;
Database.SetInitializer(new Initializer());
这是我的实际初始化程序;
public class Initializer : MigrateDatabaseToLatestVersion<Context, Configuration>
{
}
这是我的配置类的构造函数;
public Configuration()
{
AutomaticMigrationsEnabled = false;
DbMigrator migrator = new DbMigrator(this);
if (migrator.GetPendingMigrations().Any())
{
_pendingMigrations = true;
migrator.Update();
}
}