【问题标题】:How to apply Entity Framework migration scripts to restore a database in an existing ASP.NET Core Web application如何应用 Entity Framework 迁移脚本来恢复现有 ASP.NET Core Web 应用程序中的数据库
【发布时间】:2021-11-15 06:36:47
【问题描述】:
我有一个现有的具有通常风格的 ASP.NET Core Angular Web 应用程序。它在Migration/ 代码文件夹中附带了一组迁移脚本(例如20151227555555_AddIdentity.cs、20161227444444_AddCoreEntities.cs 等),每个脚本都有Up、Down 和BuildTargetModel 方法。
然后还有另一个名为 MigrationScript 的文件夹,其中包含各种数据库实体的表创建 SQL 脚本(直接 CREATE TABLE...)。
我习惯于通过我可以“publish”的数据库项目来运行数据库管理和娱乐/恢复。我是 EF Migration 的新手,那么如何运行这些迁移 C# 脚本来创建数据库?
【问题讨论】:
标签:
entity-framework
asp.net-core
migration
【解决方案1】:
C# 迁移脚本已经包含Up() 和Down() 方法这一事实意味着它们已准备好应用。 (注意:通常Up 和Down 方法是由Add-Migration migrationname 命令创建的)。
以下是如何在现有项目中应用 C# 实体框架迁移脚本:
-
使用正确的数据库名称创建空数据库。数据库名称通常在ConnectionStrings 组下的aspsettings.json 文件中定义。打开 Microsoft SQL Server Management Studio,创建一个具有正确名称的空数据库。
-
在 Visual Studio 解决方案资源管理器中,右键单击包含Migration 文件夹(C# 迁移脚本所在的位置)的项目,选择Manage NuGet Packages... 并在Installed 选项卡下查看Microsoft.EntityFrameWorkCore.Tools包已安装,如果没有继续安装它。因为那是包含 EF 迁移命令的包,即Add-Migration、Update-Database 等
-
在包含Migration 文件夹的项目中安装Microsoft.EntityFrameWorkCore.Tools 包后,通过Tools -> NuGet Package Manager -> Package Manager Console 菜单选项打开Package Manager Console。
-
在Package Manager Console 提示符下,键入命令Update-Database,然后将应用所有迁移脚本并在步骤 1 中创建的本地 SQL Server 数据库中创建的表。