jda*_*vis 11 c# entity-framework asp.net-mvc-3 ef-migrations
我在我的项目中使用Entity Framework 4.3 Migrations.我想使用自动迁移,这样当我修改我的域对象和我的上下文类时,我的数据库会在运行项目时自动更新.到目前为止,我有这个工作.
除了自动迁移之外,我还想使用一些添加的迁移,我希望应用程序在运行应用程序时自动跳转到最新版本(基于我添加的迁移).
为了做到这一点,我把它放在global.asax文件中......
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Core.Migrations.Configuration>());
Run Code Online (Sandbox Code Playgroud)
现在这可行,但是当我这样做时,它不再根据我的域对象自动更新数据库.
我希望能够完全删除数据库,然后运行应用程序并运行所有自动迁移,然后运行我的显式迁移并将数据库升级到最新版本.
我知道我已经在之前的项目中使用了这个,但我不确定在这种情况下我做错了什么.
谢谢
Mir*_*rko 10
您需要在构造函数中传递将AutomaticMigrationsEnabled设置为true的配置.这样的事情应该有所帮助:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, MyConfiguration>());
Run Code Online (Sandbox Code Playgroud)
与MyConfiguration类似:
public class MyConfiguration : Core.Migrations.Configuration
{
public MyConfiguration { this.AutomaticMigrationsEnabled = true; }
}
免责声明:刚刚入侵,所以可能需要进行小的调整才能编译
只需使用EF 4.3.1进行检查,初始化程序的代码如下:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataContext, MyConfiguration>());
Run Code Online (Sandbox Code Playgroud)
这对于配置类:
public class MyConfiguration : System.Data.Entity.Migrations.DbMigrationsConfiguration<DataContext>
{
public MyConfiguration()
{
this.AutomaticMigrationsEnabled = true;
}
}
Run Code Online (Sandbox Code Playgroud)
在敲了几个小时后,我终于想出了一个解决方案,如果需要的话可以创建数据库,或者如果过时就会升级它.我们在Gallery Server Pro中使用此技术,以便第一次轻松安装或升级以前的版本.
private static void InitializeDataStore()
{
System.Data.Entity.Database.SetInitializer(new System.Data.Entity.MigrateDatabaseToLatestVersion<GalleryDb, GalleryDbMigrationConfiguration>());
var configuration = new GalleryDbMigrationConfiguration();
var migrator = new System.Data.Entity.Migrations.DbMigrator(configuration);
if (migrator.GetPendingMigrations().Any())
{
migrator.Update();
}
}
public sealed class GalleryDbMigrationConfiguration : DbMigrationsConfiguration<GalleryDb>
{
protected override void Seed(GalleryDb ctx)
{
MigrateController.ApplyDbUpdates();
}
}
Run Code Online (Sandbox Code Playgroud)
我写了一篇博客文章,其中包含更多细节: 使用Entity Framework Code First Migrations自动创建和自动更新应用程序
| 归档时间: |
|
| 查看次数: |
20235 次 |
| 最近记录: |