我认为EF DataMigrations的目的是在更改数据库结构时保留旧数据。我认为对吗?但是当我使用迁移更新数据库时,所有旧数据都将被删除。
我是否犯了错误或者在这种情况下无法使用数据迁移?
这是DbContext:
public class CodeFirstContext : DbContext
{
public CodeFirstContext() : base ("ZenRandevuIzle")
{
}
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
public DbSet<Takvim> Takvims { get; set; }
public DbSet<Musteri> Musteris { get; set; }
public DbSet<Randevu> Randevus { get; set; }
public DbSet<SeansTuru> SeansTurus { get; set; }
public DbSet<Hizmet> Hizmets { get; set; }
public DbSet<Islem> Islems { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}
}
这是Global.asax:
Database.SetInitializer<CodeFirstContext>(new CodeFirstContextInit());
这是迁移配置:
internal sealed class Configuration : DbMigrationsConfiguration<CodeFirstContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
}
答案 0 :(得分:1)
CodeFirstContextInit初始化程序是否删除数据库并重新创建它(它的基类是什么?)通常我在使用迁移时没有初始化程序。
答案 1 :(得分:1)
要对现有数据库使用EF 4.3 Code First Data Migrations,您需要创建一个“空”迁移,以便创建Migration-History表并建立基线。
本文中概述的步骤应该有助于http://thedatafarm.com/data-access/using-ef-4-3-code-first-migrations-with-an-existing-database