小编Jon*_*ece的帖子

实体框架代码优先迁移生产(WPF 应用程序)

我最近编写了一个带有代码优先后端的 WPF 应用程序(SQL CE 4.0 数据库)。该应用程序现已广泛使用,并由非技术人员使用。

我做了一些更改,我需要添加一个迁移来反映这些更改,我已经成功完成了。只需使用命令,我就可以让它在本地计算机上正常工作Update-Database

当我部署更新时,这将如何工作?我似乎无法弄清楚我的客户数据库将如何迁移。每当我在不是我的开发机器的机器上运行时,我都会收到以下错误;

无法更新数据库以匹配当前模型,因为存在挂起的更改并且自动迁移被禁用。将待处理的模型更改写入基于代码的迁移或启用自动迁移。将 DbMigrationsConfiguration.AutomaticMigrationsEnabled 设置为 true 以启用自动迁移。

PS 我绝对不想启用自动迁移;)

更新 - -

这是我的初始化程序;

Database.SetInitializer(new Initializer());
Run Code Online (Sandbox Code Playgroud)

这是我实际的初始化程序;

public class Initializer : MigrateDatabaseToLatestVersion<Context, Configuration>
{
}
Run Code Online (Sandbox Code Playgroud)

这是我的 Configuration 类的构造函数;

public Configuration()
{
    AutomaticMigrationsEnabled = false;

    DbMigrator migrator = new DbMigrator(this);

    if (migrator.GetPendingMigrations().Any())
    {
        _pendingMigrations = true;
        migrator.Update();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wpf entity-framework-5

4
推荐指数
1
解决办法
3435
查看次数

标签 统计

c# ×1

entity-framework-5 ×1

wpf ×1