【发布时间】:2016-07-04 02:11:46
【问题描述】:
这是我的迁移和播种代码:
internal sealed class Configuration : DbMigrationsConfiguration<AuthDb>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
ContextKey = "Service.DAL.AuthDb";
}
}
public class CreateOrRunMigrations: CreateDatabaseIfNotExists<AuthDb>
{
public override void InitializeDatabase(AuthDb context)
{
base.InitializeDatabase(context);
var migrator = new DbMigrator(new Migrations.Configuration());
migrator.Update();
}
protected override void Seed(AuthDb context)
{
base.Seed(context);
// add Default product and company
}
}
上下文是这样构造的
public class AuthDb : DbContext
{
public AuthDb() : base("name=xxx")
{
Database.SetInitializer(new CreateOrRunMigrations());
Configuration.LazyLoadingEnabled = false;
Configuration.ProxyCreationEnabled = false;
Configuration.AutoDetectChangesEnabled = true;
}
}
我想要的是:
第一次创建数据库时,添加种子数据。
当我对模型进行更改时,迁移代码会自动将更改应用到数据库。
当我进行更改(例如公司)并使用 update_database 在控制台中添加迁移时,会创建迁移文件。但是当代码运行时,我收到一个错误,抱怨我的模型和数据库不再匹配。
当然不匹配,因为我刚刚进行了更改,我希望迁移将应用更改。然而,它没有。我做错了什么?
【问题讨论】:
标签: ef-code-first entity-framework-migrations