实体框架在运行时应用迁移

时间:2016-12-19 01:43:38

标签: c# entity-framework ef-migrations

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

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

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

1 个答案:

答案 0 :(得分:1)

尝试这个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)
        {
        }