我正在使用实体框架6.1。我使用基于代码的迁移,即Migrate.exe来更新我的数据库(向表中添加新属性)。 Migrate.exe执行正常,我在我的SQL Server数据库上刷新,但新添加的列不可见。 我在表中插入了一行并检查了表,发现现在新列已添加到表中。 我想知道为什么这个新创建的列在执行migrate.exe后不能立即看到,为什么我必须点击数据库才能看到我的更新模型更改?
请回复。
我使用了以下数据库上下文和初始化程序。
public class AMLDBContext : DbContext
{
public DbSet<Template> Templates { get; set; }
public DbSet<Property> Properties { get; set; }
public AMLDBContext()
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<AMLDBContext, Migrations.Configuration>());
}
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Property>().HasKey(s => new { s.PropertyName, s.TemplateId });
modelBuilder.Entity<ReturnAttribute>().HasKey(s => new { s.AttributeName, s.TemplateId });
base.OnModelCreating(modelBuilder);
}
}
我使用了以下命令来运行migrate.exe。
migrate.exe AutoDbUpgrade.exe /StartUpDirectory:"C:\TestProject\AutoDbUpgrade\AutoDbUpgrade\bin\Debug" /startupConfigurationFile=”AutoDbUpgrade.exe.config” /verbose