6

学习ASP.NET Core Blazor编程系列四——迁移 - DotNet菜园

 1 year ago
source link: https://www.cnblogs.com/chillsrc/p/16747434.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(下) 

         在具体的实际项目中,数据实体类随着应用程序的功能的变化而变化:添加和删除新的实体或属性,并且需要相应地去修改数据库的表或架构,使其与应用程序中的实体保持同步。 EF Core中的迁移功能能够以递增方式更新数据库架构或表,使其与应用程序的数据实体类保持同步,同时保留数据库中的现有数据。

      简要地说,迁移的方式如下:

  • 当项目中的数据实体类有了变改时,开发人员使用 EF Core 工具添加相应的迁移,以使数据库架构同项目中的数据实体类保持同步。EF Core 将当前数据实体类与旧的数据实体类进行快照比对,以确定差异,并生成迁移源文件;迁移源文件可在项目的源代码管理中进行跟踪,如同其他任何源文件。
  • 生成新的迁移源文件后,可通过多种方式将其应用于数据库。 EF Core 在一个特殊的历史记录表中记录所有的迁移操作,使其知道哪些迁移已执行,哪些迁移尚未执行。

一、创建脚本工具并执行初始迁移

   在本篇文章中,我们来学习如何使用包管理控制台(PMC)来对数据库进行更新:

      • 执行Add-Migration Initial生成代码文件。

      • 执行Update-Database命名,更新数据库。

  1. 从菜单中选择“工具àNuGet包管理器器—>程序包管理器控制台”菜单。
    10343-20221001165315678-1607377372.png

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

 

10343-20221001165401898-126029716.png

 3. 以上错误信息,说明我们缺少相应的包,在本文中主要用到以下三个包:
Microsoft.EntityFrameworkCore.SqlServer (适用于EF Core SQL Server 提供程序,这个包我们在前面的文章中已经安装了。)
Microsoft.EntityFrameworkCore.Design(适用于EF Core .NET Core CLI 工具 )
Microsoft.EntityFrameworkCore.Tools(适用于 EF Core 的包管理器控制台工具)

4.使用Visual Studio NuGet 包管理器控制台安装,在PMC中,输入以下命令:

Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.EntityFrameworkCore.Design

  5.上面的命令执行完毕之后,Nuget会自动安装我们所指定的包,如下图中红框所示。然后我们在PMC中输入 Add-Migration Initial。如下图。

10343-20221001165818531-1477903141.png

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

 

10343-20221001170144519-363121959.png

  7. 在上面的命令执行完毕之后,输入Update-Database,这个命令通过运行Migrations / <time-stamp>_Initial.cs文件,创建数据库表。执行过程如下图。

 

10343-20221001170222106-358735043.png

 8. 执行结束之后,会在数据库中创建Book表。如下图。

 

10343-20221001170302930-1557672251.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK