Entity Framework Core (EF Core) 是一种对象关系映射 (ORM) 框架,允许开发人员使用 .NET 对象与数据库交互。 EF Core 的一项基本功能是它处理数据库迁移的能力。
本文通过示例演示了 EF Core 迁移、它们为何如此重要以及如何使用它们。所以,开始:
C# 已经存在了相当长的一段时间,并且它还在继续发展,获得了更多的增强功能。 medium.com
EF Core 迁移是一种随着时间的推移管理数据库架构更改的方法。当您对数据库模型进行更改(例如添加或删除表或列)时,您可以创建一个描述这些更改的迁移。
然后使用迁移来更新数据库模式以匹配新模型。
EF Core 迁移是必不可少的,因为它们允许您在保留数据的同时随着时间的推移改进数据库架构。
如果没有迁移,每次更改模型时都必须手动修改数据库架构,这既耗时又容易出错。
迁移还提供了一种对数据库模式进行版本控制的方法,以便您可以轻松跟踪更改并在需要时回滚到以前的版本。
要使用 EF Core 迁移,您需要执行以下几个步骤:
创建一个新的 EF Core 项目。第一步是在 Visual Studio 中创建一个新的 EF Core 项目。您可以通过选择“创建新项目”,然后选择“ASP.NET Core Web 应用程序”并选择“Web 应用程序(模型-视图-控制器)”模板来完成此操作。
创建数据库上下文。下一步是创建数据库上下文类。此类管理 .NET 对象与数据库之间的交互。要创建数据库上下文,请在您的项目中创建一个新类并从 DbContext 类继承它。
public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } }
创建数据库模型
创建数据库上下文后,您需要创建数据库模型。此模型表示数据库的结构,EF Core 使用它来生成数据库表和列。
要创建数据库模型,请在您的项目中创建一个新类,并将其属性定义为数据库字段。
public class MyModel { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
启用 EF Core 迁移
接下来,您需要在您的项目中启用 EF Core 迁移。为此,请打开包管理器控制台,然后输入以下命令:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
此包包含创建和管理 EF Core 迁移所需的工具。
创建迁移
启用 EF Core 迁移后,您可以创建您的第一个迁移。要创建迁移,请打开包管理器控制台,然后输入以下命令:
PM> Add-Migration InitialCreate
这将创建一个名为“InitialCreate”的新迁移,它描述了您对数据库模型所做的更改。您可以在项目的“迁移”文件夹中查看迁移的内容。
更新数据库
创建迁移后,您可以更新数据库架构以匹配新模型。为此,请打开包管理器控制台,然后输入以下命令:
PM> Update-Database
这会将迁移应用到数据库并更新其架构。
让我们看一个使用 EF Core 迁移的示例。假设我们要创建一个简单的“Students”表,其中包含两列:“Id”和“Name”。我们将首先在 Visual Studio 中创建一个新的 ASP.NET Core Web 应用程序项目。
创建一个新的 EF Core 项目。在 Visual Studio 中创建一个新的 ASP.NET Core Web 应用程序项目。选择“Web Application (Model-View-Controller)”模板,然后选择“Individual User Accounts”进行身份验证。将项目命名为“EFCoreMigrationsExample”。
创建数据库上下文。在项目的“Models”文件夹中创建一个名为“MyDbContext”的新类,并从 DbContext 类继承它。
using Microsoft.EntityFrameworkCore; namespace EFCoreMigrationsExample.Models { public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } }
“Students”属性是一个 DbSet,表示我们数据库的“Students”表。
创建数据库模型
在项目的“模型”文件夹中创建一个新的“学生”类,并定义其属性。
namespace EFCoreMigrationsExample.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } }
启用 EF Core 迁移
打开包管理器控制台并输入以下命令来安装 EF Core 工具包:
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
创建迁移
打开程序包管理器控制台,然后输入以下命令来创建迁移:
PM> Add-Migration InitialCreate
这将创建一个名为“InitialCreate”的新迁移,它描述了我们对数据库模型所做的更改。
迁移文件应如下所示:
using Microsoft.EntityFrameworkCore.Migrations; namespace EFCoreMigrationsExample.Migrations { public partial class InitialCreate : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Students", columns: table => new { Id = table.Column<int>(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column<string>(type: "nvarchar(max)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Students", x => x.Id); }); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Students"); } } }
迁移创建了一个名为“Students”的新表,其中包含“Id”和“Name”列。
更新数据库打开包管理器控制台,输入以下命令更新数据库架构:
PM> Update-Database
这会将迁移应用到数据库并更新其架构。
现在我们可以使用 EF Core 在我们的数据库中添加、更新和删除学生。例如,我们可以像这样向数据库中添加一个新学生:
using EFCoreMigrationsExample.Models; namespace EFCoreMigrationsExample.Controllers { public class HomeController : Controller { private readonly MyDbContext _context; public HomeController(MyDbContext context) { _context = context; } public IActionResult Index() { var student = new Student { Name = "John" }; _context.Students.Add(student); _context.SaveChanges(); return View(); } } }
此代码创建 Student 类的新实例并将其 Name 属性设置为“John”。然后它将学生添加到 Students DbSet 并将更改保存到数据库。
EF Core 迁移提供了一种方便的方法来管理应用程序中的数据库架构更改。
本文介绍如何使用 EF Core 迁移创建简单的数据库架构,包括创建 DbContext、定义模型、进行迁移和更新数据库架构。
这只是 EF Core 可以做的事情的开始。您可以使用 EF Core 查询和操作数据,在表之间创建复杂的关系,等等。凭借其易用性和广泛的功能,EF Core 是在 .NET 中构建数据驱动应用程序的绝佳选择。
本文帮助您开始使用 EF Core 迁移。如果您有任何问题或意见,请在下方留言。编码愉快!
C# 出版物、 LinkedIn 、 Instagram 、 Twitter 、 Dev.to
也发布在这里