zoukankan      html  css  js  c++  java
  • code First 迁移

    你可能先使用code First先生成了上下文,然后添加了一些数据进去,这个时候你想再其中的某一个类加几个字段,但你想继续保留在数据库中的数据。因为这个时候之前的那几个初始化并不能完成我们的需求。这个时候需要使用代码迁移。

    专业术语:代码迁移,用来解决数据库更新问题。

    ①自动更新     可以添加一个一个类,添加属性,删除属性,删除类

    注:所以的操作我们都是根据类来更新数据库噢,请不要直接去修改数据库,不然就会报错

     1,先需要打开   程序包管理控制台

    2,输入指令 enable-migrations –EnableAutomaticMigration:$true  

    完成之后会在我们的项目中自动生成一个Configuration类

    3,修改我们的数据初始化

     

    运行项目,数据库就会跟着更新了。

    ②基于代码的迁移

    基于代码的迁移提供了对迁移的更多控制,并允许您配置其他内容,例如设置列的默认值,配置计算列等。自动更新就不能设置添加列默认值。

     1,打开我们的程序包控制台,输入:enable-migrations

    完成之后会生成我们的  configuration文件

     

    2,设置数据库初始化

    3,完成迁移,我们这里需要两个步骤

      1.Add-Migration命令创建迁移类

     

     2.  Update-Database  –verbose 更新数据库   -verbose可以显示创建的SQL语句

     

     4,刷新数据库,根据类创建的数据库已经生成

     

    5,如果需要更新字段

    先在类里面创建一个新列,然后重复第③步

     

     

        

    6,你想修改表,删除表,添加表,都先把代码写好,然后执行第③步更新数据库就可以了

    指令:Update-Database -TargetMigration 指定将数据库更新到哪个迁移的名称。 

      例如:Update-Database -TargetMigration:Schoolv1

     


    如果一个项目存在多个上下文原来的方法就不行了,这个时候需要明确一点

    enable-migrations -ContextTypeName <DbContext-Name-with-Namespaces> -MigrationsDirectory:<Migrations-Directory-Name>  //启用
    Add-Migration -configuration <DbContext-Migrations-Configuration-Class-with-Namespaces> <Migrations-Name>  //添加
    Update-Database -configuration <DbContext-Migrations-Configuration-Class-with-Namespaces> -Verbose  //更新

     演示效果:

     迁移第一个:

     1,启用

    2,添加

     3,更新,成功后数据库将被创建

     

     迁移第二个

     1,启用

     

     2,添加

      

     3.更新,成功后将会生成新的数据库

    总结:不管我们是自动迁移,还是基于代码的迁移,我们所有的操作都是给类做操作,然后根据类决定是更新,创建,删除数据库(表中的属性),我们不能直接去数据库中删除一个字段,这样就会有问题。

       

  • 相关阅读:
    html调用php
    MySQL安装下载
    MySQL默认安装下载
    MySQL安装下载
    搭建php环境
    面试官:聊聊对Vue.js框架的理解
    TCP、UDP、HTTP、SOCKET之间的区别与联系
    HTTP/1、HTTP/2、HTTP/3
    git教程
    从jQuery到Serverless,前端十四年挖了多少坑?
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/8603729.html
Copyright © 2011-2022 走看看