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.更新,成功后将会生成新的数据库

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

       

  • 相关阅读:
    卡特兰数
    hdu 1023 Train Problem II
    hdu 1022 Train Problem
    hdu 1021 Fibonacci Again 找规律
    java大数模板
    gcd
    object dection资源
    Rich feature hierarchies for accurate object detection and semantic segmentation(RCNN)
    softmax sigmoid
    凸优化
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/8603729.html
Copyright © 2011-2022 走看看