Entity Framework Core 迁移功能

Author Image
admin Thursday, June 3, 2021 阅读数: 60
Share:

本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP)
本文出自《从零开始学 ASP.NET Core 与 EntityFramework Core》目录
视频课程效果更佳:跨平台开发实战掌握 ASP.NET Core 与 EntityFramework Core

Entity Framework Core 迁移功能

在本章节中,我们将学习 Entity Framework Core 中的迁移概念。

EF Core 中的迁移是什么

迁移是 Entity Framework Core 中的一种 功能,它可以使我们的数据库架构和我们的应用程序模型类(也称为实体类)保持同步。

如果您没有在应用程序中执行初始化迁移,则可能会收到以下异常提示:

SqlException: Cannot open database "StudentDB" requested by the login. The login failed.

这是因为我们还没有创建数据库。创建数据库的其中一种方法是:

  • 首先创建迁移记录

  • 执行该迁移来创建数据库

    要使用迁移,我们可以使用程序包管理器控制台(PMC)或.NET Core 命令行界面(CLI)。

如果您像我一样使用 Visual Studio,请使用程序包管理器控制台

要在 Visual Studio 中启动程序包管理器控制台,请单击" 工具" - "NuGet 包管理器" - 程序包管理器控制台

程序包管理器控制台

常用的 Entity Framework Core 迁移命令

我们将使用以下 3 个常用命令来处理 Entity Framework Core 中的迁移。

命令 作用
get-help about_entityframeworkcore 提供Entity Framework Core的帮助信息
Add-Migration 添加新迁移记录
Update-Database 将数据库更新为指定的迁移

请注意:您可以将 get-help 命令与上述任何命令一起使用。例如,get-help Add-Migration会提供 Add-Migration 命令的帮助信息。

在 Entity Framework Core 中创建迁移

以下命令可创建初始迁移。InitialCreate 是迁移的名称,您可以随意指定。

Add-Migration InitialCreate

上述命令完成后,您会发现多了一个"Migrations"文件夹中,在里面可以看到一个包含名称 InitialCreate.cs 的文件。此文件则包含了创建相应数据库表所需的代码内容。

小提示:我们可以在程序包管理器控制台窗口中,输入命令的一部分,然后按 TAB键,它可以帮助我们自动完成该命令。

在 Entity Framework Core 中的更新数据库

现在我们需要执行迁移代码来创建表。如果数据库尚不存在,则会先创建数据库,然后创建数据库表。为了更新数据库,我们使用 Update-Database 命令。对于 Update-Database命令,我们可以指定想要执行的迁移名称。如果未指定迁移,则默认情况下该命令将执行上次迁移记录。

执行迁移后,当您运行应用程序时,我们就不会再看到以下异常信息: SqlException SqlException:无法打开登录请求的数据库"**StudentDB**"。

这是因为在执行迁移时会创建 StudentDB 。我们可以在 Visual Studio 的 SQLServer 对象资源管理器窗口中确认这一点。

sql链接

目前我们在 Students 表中没有任何数据。在下一个章节中,我们将学习如何使用初始数据为数据库表设定种子数据。

//todo:如何打开 SQLServer 对象资源管理器

add-migration

文章说明

如果您觉得我的文章质量还不错,欢迎打赏,也可以订阅我的视频哦
未得到授权不得擅自转载本文内容,52abp.com 保留版权
感谢您对我的支持

关注微信公众号:角落的白板报

公众号:角落的白板报