原文推荐!点我点我!
添加Migrations文件夹,并生成类文件Configuration.cs
PM> Enable-Migrations -EnableAutomaticMigrations
在Migrations文件夹中新增类文件201309201556388_InitialCreate.cs
Add-Migration InitialCreate //后面的名字是随便写的
执行结果生成与上面一致的数据库
Update-Database -Verbose
数据库模型中添加City类,执行程序包管理器控制台语句,Migrations文件夹中新增类文件201309201643300_AddCity.cs
Add-Migration AddCity //后面的名字是随便写的
执行程序包管理器控制台语句,进行数据库版本回溯
Update-Database –TargetMigration:"201309201643300_AddCity"
生成数据库版本之间的Sql脚本
Update-Database -Script -SourceMigration:"201309201643300_AddCity" -TargetMigration:"201309201708043_ModifyCity"
执行Sql脚本
Update-Database -Script
Enable-Migrations指定项目名称
Enable-Migrations -StartUpProjectName Portal
MigrateDatabaseToLatestVersion:将Entity的修改同步到数据库
下面的代码的原文地址
public class StyleContext:DbContext
{
public StyleContext() : base("name=WMSAidDB")
{
//自动创建表,如果Entity有改到就更新到表结构
Database.SetInitializer<StyleContext>(new MigrateDatabaseToLatestVersion<StyleContext, ReportingDbMigrationsConfiguration>());
}
public DbSet<StyleDetail> StyleDetails { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
internal sealed class ReportingDbMigrationsConfiguration : DbMigrationsConfiguration<StyleContext>
{
public ReportingDbMigrationsConfiguration()
{
AutomaticMigrationsEnabled = true;//任何Model Class的修改將會直接更新DB
AutomaticMigrationDataLossAllowed = true;
}
}
来源:https://www.cnblogs.com/weloveshare/p/5735347.html