如何应用 Entity Framework 迁移脚本来恢复现有 ASP.NET 核心 Web 应用程序中的数据库

How to apply Entity Framework migration scripts to restore a database in an existing ASP.NET Core Web application

我有一个现有的 ASP.NET 核心 Angular Web 应用程序,具有通常的风格。它在 Migration/ 代码文件夹中附带了一组迁移脚本(例如 20151227555555_AddIdentity.cs20161227444444_AddCoreEntities.cs 等),每个脚本都有 UpDownBuildTargetModel 方法。

然后还有另一个名为 MigrationScript 的文件夹,其中包含相当于 table 创建 SQL 脚本(直接 CREATE TABLE...)的各种数据库实体。

我习惯于运行宁数据库管理和recreation/restore通过我可以“publish”的数据库项目。我是 EF 迁移方式的新手,那么我如何 运行 那些迁移 C# 脚本来创建数据库?

C# 迁移脚本已经包含 Up()Down() 方法这一事实意味着它们已准备好应用。 (注意:通常 UpDown 方法是由 Add-Migration migrationname 命令创建的。

以下是如何在现有项目中应用 C# entity framework 迁移脚本:

  1. 使用正确的数据库名称创建空数据库。数据库名称通常定义在ConnectionStrings 组下的aspsettings.json 文件中。打开 Microsoft SQL Server Management Studio,使用正确的名称创建一个空数据库。

  2. 在 Visual Studio 解决方案资源管理器中,右键单击包含 Migration 文件夹(C# 迁移脚本所在的位置)的项目,选择 Manage NuGet Packages... 并在 Installed 选项卡下查看是否安装了 Microsoft.EntityFrameWorkCore.Tools 软件包,如果没有,请继续安装。因为这是包含 EF 迁移命令的包,即 Add-MigrationUpdate-Database

  3. 在包含 Migration 文件夹的项目中安装 Microsoft.EntityFrameWorkCore.Tools 包,通过 Tools -> NuGet Package Manager -> Package Manager Console 菜单选项打开 Package Manager Console

  4. Package Manager Console 提示符下,键入命令 Update-Database,然后将应用所有迁移脚本并在本地 SQL 服务器中创建表在步骤 1 中创建的数据库。