我正在使用EF代码优先迁移。我在模型中添加了一个新属性,但它没有反映为数据库中的列。
Configuration.cs
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
的Global.asax.cs
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DbContext, DbMigrationsConfiguration<DbContext>>());
using (var context = new MyDbContext())
{
context.Database.Initialize(true);
}
我已经尝试了update-database
。它表示没有待定的迁移。
编辑:
我的EF是一个单独的类库项目。 还有另一个类库项目存储所有模型。 主(启动)项目是一个MVC项目。
我应该在哪里添加迁移?
此外,Add-Migrations Initial总是给我EMPTY Up()和Down()方法。
答案 0 :(得分:1)
这对我有用,首先备份你的数据库然后删除项目中的migrations
文件夹并删除数据库中的__MigrationHistory
表
然后运行此命令
Enable-Migrations -EnableAutomaticMigrations -Force
然后添加迁移
Add-Migration InitialMigration
最后用
更新数据库Update-Database
答案 1 :(得分:0)
详细可以解决这个问题。在包管理器控制台中运行
Update-Database –Verbose
答案 2 :(得分:0)
执行&#34;更新数据库&#34;命令你运行"Add-Migrations"?
Add-Migrations命令将生成必要的迁移脚本以更新数据库。
另外,您的数据库中是否有_MigrationsHistory表?
您是否可以更新代码以指向MyDbContext
而不是DbContext
?我相信DbMigrationsConfiguration<DbContext>>()
也应该指向你的dbcontext类型。
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, DbMigrationsConfiguration<MyDbContext>>())
答案 3 :(得分:0)
*首先添加新模型:用户模型-id,fname,lname,adress,ect ...
*在您的Application db上下文中将新模型定义为新集合示例: 公共DbSet用户{get;组; }
*创建迁移:add-Migration YourMigrationName *更新数据库