zoukankan      html  css  js  c++  java
  • [EF Core] 迁移基础知识

    [文章内容来源于Microsoft Doc]

      开发期间,数据模型将发生更改并与数据库不同步。 可以删除该数据库,让 EF 创建一个新的数据库来匹配该模型,但此过程会导致数据丢失。 EF Core 中的迁移功能能够以递增方式更新数据库架构,使其与应用程序的数据模型保持同步,同时保留数据库中的现有数据。

      迁移包括命令行工具和 API,可帮助执行以下任务:

    • 创建迁移。 生成可以更新数据库以使其与一系列模型更改同步的代码。
    • 更新数据库。 应用挂起的迁移更新数据库架构。
    • 自定义迁移代码。 有时,需要修改或补充生成的代码。
    • 删除迁移。 删除生成的代码。
    • 还原迁移。 撤消数据库更改。(sqlite不支持表和字段的重命名等给还原带来很多问题)
    • 生成 SQL 脚本。 可能需要一个脚本来更新生产数据库,或者对迁移代码进行故障排除。
    • 在运行时应用迁移。 当设计时更新和正在运行脚本不是最佳选项时,调用 Migrate() 方法。

    创建迁移

    PowerShell-> Add-Migration InitialCreate

    .Net Core CLI-> dotnet ef migrations add InitialCreate

    更新数据库

    PowerShell-> Update-Database

    .Net Core CLI-> dotnet ef database update

    自定义迁移代码

    PowerShell-> Add-Migration AddProductReviews

    .Net Core CLI-> dotnet ef migrations add AddProductReviews

    修改迁移基架中的代码,然后更新数据库。

    空迁移

    有时模型未变更,直接添加迁移也很有用处。 在这种情况下,添加新迁移会创建一个带空类的代码文件。 可以自定义此迁移,执行与 EF Core 模型不直接相关的操作。 可能需要通过此方式管理的一些事项包括:

    • 全文搜索
    • 函数
    • 存储过程
    • 触发器
    • 视图

    删除迁移

     

    PowerShell-> Remove-Migration

    .Net Core CLI-> dotnet ef migrations remove

    还原迁移

    PowerShell-> Update-Database LastGoodMigration

    .Net Core CLI-> dotnet ef database update LastGoodMigration

    生成 SQL 脚本 

    PowerShell-> Script-Migration

    .Net Core CLI-> dotnet ef migrations script

    在运行时应用迁移

     myDbContext.Database.Migrate();

  • 相关阅读:
    ECSHOP热门搜索关键词随机显示
    最全面的常用正则表达式大全
    ToString()、Convert.ToString()、(string)、as string 的区别
    RabbitMQ Server的安装、配置及常用命令
    RabbitMQ 学习资料
    使用dynamic来简化反射实现
    C#4.0中的dynamic关键字和ExpandoObject对象
    Erlang
    RestSharp使用备忘
    mysql group by的特殊性
  • 原文地址:https://www.cnblogs.com/amytal/p/11686180.html
Copyright © 2011-2022 走看看