【问题标题】:Entity Framework apply migrations at runtime实体框架在运行时应用迁移
【发布时间】:2016-12-19 01:43:37
【问题描述】:

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

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

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

【问题讨论】:

标签: c# entity-framework entity-framework-migrations


【解决方案1】:

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

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

【讨论】:

  • 我使用了您建议的变体。 Database.SetInitializer&lt;ObjectContext&gt;( new MigrateDatabaseToLatestVersion&lt;ObjectContext, Configuration&gt;());
  • 只是一个非常轻微的挑剔.. 空的 catch 块是没有问题的......
  • @gburton 实际上只是另一个开始。
猜你喜欢
  • 2016-11-18
  • 2012-03-06
  • 2017-07-03
  • 2016-07-15
  • 2015-05-11
  • 1970-01-01
相关资源
最近更新 更多