一个。net核心数据库映射器,实体框架的核心是开源、跨平台的对应的实体框架为。net ORM(对象关系映射)。在EF核心的显著特点是能够执行迁移更新您的数据库模式和确保他们保持同步与您的应用程序的数据模型。
在本文中,我们将深入研究使用EF的基础核心迁移在ASP。网络核心7应用程序。使用本文中提供的代码示例,您应该Visual Studio 2022安装在您的系统。如果你不已经有一个副本,你可以在这里下载Visual Studio 2022。
创建一个ASP。网络核心Web API project in Visual Studio 2022
首先,让我们创建一个ASP。网络核心7 project in Visual Studio 2022. Follow these steps:
- 启动Visual Studio 2022 IDE。
- 点击“创建新项目。”
- 在“创建新项目”窗口中,选择“ASP。网络核心Web API” from the list of templates displayed.
- 单击Next。
- 在“配置您的新项目”窗口中,指定新项目的名称和位置。
- (可选)检查“解决方案和项目在同一个目录”复选框,根据您的喜好。
- 单击Next。
- 接下来,所示的“其他信息”窗口中取消选中该复选框,表示“使用控制器…”,因为在这个例子中我们将使用最小的api。离开“验证类型”设置为“无”(默认)。
- 确保复选框“启用开放API支持,”“为HTTPS,配置”和“使码头工人”是不受我们不会使用这些特性。
- 单击Create。
我们将使用ASP。网络核心7 Web API project to work with EF Core migrations in the sections below.
EF核心迁移是什么?
在软件金博宝188手机网页开发中,这是常见的更改数据模型随着需求的发展。这些变化可能包括添加新表,修改现有表,或删除表。没有迁移,将这些更改应用到数据库将会困难,而且容易出错。
迁移的过程管理更改数据库模式随着时间的推移发生时。迁移帮助你确保数据库模式和应用程序的域模型同步。
您可以利用迁移增强或改变你的数据库模式通过增加,减少,或改变数据库元素,如表、索引、列和关联。使用迁移,开发人员可以精确记录更改数据库模式,实现这些变化组织的方式,撤销或修改如果需要任何更改。
注意,默认启用了迁移在EF核心。您可以使用迁移在Visual Studio通过包管理器控制台或通过使用命令行工具来运行EF核心CLI命令。
安装EF核心NuGet包
创建一个类库项目在同一个ASP。网络核心7我们上面创建Web API项目。我们将使用这个类库项目实现EF核心迁移。假设最初的项目被评为EFMigrationsDemo,名字EFMigrationsDemo.Data类库项目。
这个时候,你的解决方案资源管理器将类似于下面的图1。
图1:在解决方案资源管理器窗口的开始我们的项目。
现在,安装以下三个EFMigrationsDemo NuGet包。数据项目。
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
接下来,安装以下NuGet包在启动项目,EFMigrationsDemo,确保成功迁移工作。
Microsoft.EntityFrameworkCore.Design
在ASP中创建一个模型类。网络核心
创建一个新文件命名的作者。在你的EFMigrationsDemo cs。数据项目并输入以下代码。
使用System.ComponentModel.DataAnnotations;名称空间EFMigrationsDemo。数据{公共部分类作者{(关键)公共int Id{得到;设置;公共字符串FirstName}{得到;设置;}公共字符串地址{得到;设置;}公共字符串邮件{得到;设置; } public string Phone { get; set; } } }
创建数据上下文在ASP。网络核心
创建一个新的cs文件名为EFMigrationsDemoDBContext命名。EFMigrationsDemo cs。数据项目,输入以下代码。
使用Microsoft.EntityFrameworkCore;名称空间EFMigrationsDemo。数据{公共部分类EFMigrationsDemoDBContext: DbContext{公共EFMigrationsDemoDBContext (DbContextOptions < EFMigrationsDemoDBContext >选项):基础(选项){}公共虚拟DbSet <作者>作者{得到;设置;}保护覆盖空白OnModelCreating (ModelBuilder ModelBuilder) {ModelBuilder。实体< >作者(实体= >{实体。HasKey (k = > k.Id);});OnModelCreatingPartial (modelBuilder);}部分无效OnModelCreatingPartial (ModelBuilder ModelBuilder);}}
创建一个使用EF核心迁移
创建一个移民,您应该使用Add-Migration NuGet包管理器的命令。例如,要创建一个名为MyDemoMigration的新移民在包管理器控制台中,执行下面的命令。
Add-Migration MyDemoMigration
或者,您可以执行以下命令dotnet CLI。
dotnet ef迁移添加MyDemoMigration
这将建立一个新的迁移文件迁移文件夹的项目,包括代码代表了修改你的数据模型。您可以检查生成的代码(参见图2),以确认它代表你打算修订,使任何必要的调整。
图2:自动生成的移民文件。
使用EF核心应用迁移
应用迁移到数据库,您必须已经创建了迁移。接下来,使用- database就命令在包管理器控制台应用更改数据库。下面的代码片段说明了如何应用最新的数据库迁移。
- database就
或者,您可以使用以下dotnet CLI命令。
dotnet ef数据库更新
这将适用于任何优秀的数据库迁移,使模式与数据模型同步。
图3显示了创建数据库和表后执行此命令。
图3:执行数据库更新后的数据库及其对象的命令。
删除一个迁移使用EF的核心
如果您需要撤销最后迁移,使用Remove-Migration
包管理器控制台或命令dotnet ef迁移删除
终端的命令。比如,你可以在包管理器控制台中执行以下命令删除最近应用迁移。
Remove-Migration
或者你可以执行以下dotnet CLI命令。
dotnet ef迁移删除
的Remove-Migration
命令是善于把last-applied迁移并更新相应的数据库模式与以往的迁移。换句话说,命令将删除最近移民的迁移文件夹项目和更改数据库模式反映了移民。
恢复使用EF核心迁移
您可能经常需要恢复数据库中的早期移民所做的更改。前一个状态更新数据库,您可以使用以下的语法。
迁移- database就<名称>
因此,回复更改数据库迁移MyInitialMigration命名,你会使用以下命令。
- database就MyInitialMigration
或者,您可以使用以下dotnet CLI命令。
dotnet ef数据库更新MyInitialMigration
迁移是EF核心的核心组件,使开发人员来处理数据库模式变化在一个有组织的和有效的方式。通过使用迁移,在需要的时候可以将更改应用到数据库模式,恢复这些变化在必要的时候,随着时间的推移和监视更改数据库模式。