zoukankan      html  css  js  c++  java
  • EF 数据迁移

     问 题

    支持“AppContext”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库

     原因以及解决办法

     在用EF CodeFirst模式开发当中难免会对类进行修改,修改后再次运行就会出现异常,提示上下文的模型已在数据库创建后发生改变。

     如果是项目初期开发倒是好办,可以删掉数据库重新建立,但是如果项目已经运行了,我想你不会想初期那样做吧,会照成数据丢失的。这个时候就需要使用EF的数据迁移功能了,下面教你如何使用数据迁移。

     打开VS,工具>库程序包管理器>程序包管理器控制台。

     在控制台中输入Enable-Migrations(不分大小写)。

     输入这个命令后还会在项目中创建Migrations文件夹,里面包含两个文件

     1:Configuration.cs  这个类允许你自己配置对AppContext上下文迁移的行为。比如添加一些数据的初始化操作。

     2:201403310555286_InitialCreate.cs,这个文件名是由 时间戳+下划线+ Initial.cs组成的,这个类包含了创建数据库架构的代码。

     生成和运行迁移

    执行“Add-Migration FirstMigration”命令,添加一个名为FirstMigration的迁移

    执行“Update-Database”命令,更新数据库架构

    另外,如果我们要对指定的项目进行数据迁移,我们只需要在命令后指定项目名称就行了,例如:

    Enable-Migrations -ProjectName DemoWeb

    Add-Migration FirstMigration -ProjectName DemoWeb

    Update-Database -ProjectName DemoWeb

    如果更新数据库存在冲突而不能执行更新,可以添加 -Force强制执行,例如:“Update-Database -Force”

    设置自动迁移
    namespace Demo.Data.Migrations
      {
          internal sealed class Configuration : DbMigrationsConfiguration<DemoDbContext>
          {
              public Configuration()
              {
                  AutomaticMigrationsEnabled = true;
                 AutomaticMigrationDataLossAllowed = true;
              }
         }
     }
    
  • 相关阅读:
    如何实现Appium每次运行可不用卸载手机上的Appium Settings 和Unlock
    jmeter参数化----绝对路径&相对路径
    python获取元素之byxpath()的八种方法
    uiautomatorviewer连接机器点击报错Unexpected error while obtaining UI hierarchy
    【Jmeter】使用 jmeter的_time函数获取时间
    博客作业第三周
    博客作业第二周
    博客作业第一周
    关于测试
    抽象工厂模式(AbstractFactory)
  • 原文地址:https://www.cnblogs.com/wywnet/p/4043485.html
Copyright © 2011-2022 走看看