学习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编程系列四——迁移

文章插图
【学习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编程系列四——迁移

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

文章插图
7. 在上面的命令执行完毕之后,输入Update-Database,这个命令通过运行

    推荐阅读