学习ASP.NET Core Blazor编程系列四——迁移

学习ASP.NET Core Blazor编程系列一——综述学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(上)学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(中)学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(下)
学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(完)学习ASP.NET Core Blazor编程系列三——实体在具体的实际项目中 , 数据实体类随着应用程序的功能的变化而变化:添加和删除新的实体或属性 , 并且需要相应地去修改数据库的表或架构 , 使其与应用程序中的实体保持同步 。EF Core中的迁移功能能够以递增方式更新数据库架构或表 , 使其与应用程序的数据实体类保持同步 , 同时保留数据库中的现有数据 。
简要地说 , 迁移的方式如下:

  • 当项目中的数据实体类有了变改时 , 开发人员使用 EF Core 工具添加相应的迁移 , 以使数据库架构同项目中的数据实体类保持同步 。EF Core 将当前数据实体类与旧的数据实体类进行快照比对 , 以确定差异 , 并生成迁移源文件;迁移源文件可在项目的源代码管理中进行跟踪 , 如同其他任何源文件 。
  • 生成新的迁移源文件后 , 可通过多种方式将其应用于数据库 。EF Core 在一个特殊的历史记录表中记录所有的迁移操作 , 使其知道哪些迁移已执行 , 哪些迁移尚未执行 。
 
一、创建脚本工具并执行初始迁移
在本篇文章中 , 我们来学习如何使用包管理控制台(PMC)来对数据库进行更新:
? 执行Add-Migration Initial生成代码文件 。
? 执行Update-Database命名 , 更新数据库 。
  1. 从菜单中选择“工具àNuGet包管理器器—>程序包管理器控制台”菜单 。
    学习ASP.NET Core Blazor编程系列四——迁移

    文章插图
2. 在PMC中 , 输入以下命令: Add-Migration Initial 。会提示如下错误“Add-Migration : 无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 。请检查名称的拼写 , 如果包括路径 , 请确保路径正确 , 然后再试一次 。” 。如下图 。
学习ASP.NET Core Blazor编程系列四——迁移

文章插图
3. 以上错误信息 , 说明我们缺少相应的包 , 在本文中主要用到以下三个包:Microsoft.EntityFrameworkCore.SqlServer (适用于EF Core SQLServer 提供程序 , 这个包我们在前面的文章中已经安装了 。)Microsoft.EntityFrameworkCore.Design(适用于EF Core .NET CoreCLI 工具)Microsoft.EntityFrameworkCore.Tools(适用于 EF Core 的包管理器控制台工具)
4.使用VisualStudio NuGet 包管理器控制台安装 , 在PMC中 , 输入以下命令:
Install-Package Microsoft.EntityFrameworkCore.ToolsInstall-Package Microsoft.EntityFrameworkCore.Design
5.上面的命令执行完毕之后 , Nuget会自动安装我们所指定的包 , 如下图中红框所示 。然后我们在PMC中输入 Add-Migration Initial 。如下图 。
【学习ASP.NET Core Blazor编程系列四——迁移】
学习ASP.NET Core Blazor编程系列四——迁移

文章插图
6. 在上面的命令执行完毕之后 , 会在项目中增加Migrations目录和用于创建初始数据库的代码 , 如下图 。这些代码是基于DbContext指定的模型(在Models/ BookCntext.cs) 。初始参数用于命名迁移 。您可以修改成任何名称 , 但按惯例您可以选择描述迁移的名称 。

经验总结扩展阅读