zoukankan      html  css  js  c++  java
  • EF修改model自动更新数据库

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

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

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

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

    第三步:在OwnDbContext里

    public OwnDbContext()
                : base("DefaultConnection")
            {           
                Database.SetInitializer(new MigrateDatabaseToLatestVersion<OwnDbContext, Own.Model.Migrations.Configuration>()); 
            }

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

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

    当你修改完某个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<MvcOwn.Models.OwnDbContext, Migrations.Configuration>());

  • 相关阅读:
    斯特林反演入门
    【清华集训2016】如何优雅地求和
    布隆过滤器
    HBase体系结构
    插入排序
    Hive中的文件存储格式
    HDFS的读写流程
    AQS
    Condition接口
    HashMap源码分析
  • 原文地址:https://www.cnblogs.com/dangzhensheng/p/4108706.html
Copyright © 2011-2022 走看看