ef mysql自动更新_EF修改model自动更新数据库

最近用MVC+EF学习时遇到修改model后而数据库没更新报错,就在网上找关于数据迁移自动更新数据库的,折腾了大半天终于弄了出来

第一步:在程序包管理器控制台里: Enable-Migrations -ProjectName EF所在的项目名称

第二步:运行后会在字段生成Migrations文件夹,Migrations->Configuration.cs 类里把AutomaticMigrationsEnabled改为true(即设为model有改动自动更新数据库)

如有删除字段则要加 AutomaticMigrationDataLossAllowed = true(可接受自动迁移期间的数据丢失的值)

第三步:在OwnDbContext里

publicOwnDbContext()

:base("DefaultConnection")

{

Database.SetInitializer(new MigrateDatabaseToLatestVersion());

}

PS:在查的一些资料中有些没有第三步,可我的不改这个还是报错改了才可以

或里面为 Database.SetInitializer(new DropCreateDatabaseIfModelChanges());

当你修改完某个model,在 package manager console 中输入Add-Migration model名 会有对应的文件生成,

Update-Database 这个命令会把你对实体的更改 通过 migration文件对应的对数据库进行修改

ps:如果实体模型改变了,也可以使用Add-Migration [迁移文件名] 命令可以生成待迁移文件,最后使用Update-Database命令提交改变。

在Global.asax的方法Application_Start()加:

System.Data.Entity.Database.SetInitializer(new System.Data.Entity.MigrateDatabaseToLatestVersion());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值