Entity Framework 在运行时应用迁移

Entity Framework apply migrations at runtime

我正在创建一个使用 Entity Framework Code First 的 C# WinForms 应用程序,如果数据库不存在,它会设置为创建。

由于该应用程序未随数据库一起分发,它会在需要时创建它,因此我需要找到一种方法来检测在我发布新版本的应用程序时每种情况需要应用哪些迁移。

如何在运行时检测和应用所需的迁移?

试试这个Initializer:System。Data.Entity.MigrateDatabaseToLatestVersion,它会更新你的数据库(不删除数据库,不删除数据),只是更新实体改变了。

Database.SetInitializer(new MigrateDatabaseToLatestVersion<T, DbMigrationsConfiguration<T>>());
        try
        {
            using (var ctx = new T())
            {
                ctx.Database.Initialize(true);
            }
        }
        catch (Exception e)
        {
        }