目录
一.管理数据库架构概述
EF Core 提供两种主要方法来保持 EF Core 模型和数据库架构同步。一是以 EF Core 模型为基准,二是以数据库为基准。
(1)如果希望以 EF Core 模型为准,请使用迁移。 对 EF Core 模型进行更改时,此方法会以增量方式将相应架构更改应用到数据库,以使数据库保持与 EF Core 模型兼容。
(2)如果希望以数据库架构为准,请使用反向工程。 使用此方法,可通过将数据库架构反向工程到 EF Core 模型来生成相应的 DbContext 和实体类型。
1.1. 迁移概述
在开发期间,数据模型发生更改后,会与数据库不同步。 虽然可以删除该数据库,让 EF 创建一个新的数据库来匹配该模型,但此过程会导致数据丢失。迁移作用是指:在 EF Core 中使用迁移功能,能够以递增方式更新数据库架构,使其与应用程序的数据模型保持同步,同时保留数据库中的现有数据。
迁移包括 命令行工具和API,可协助执行以下任务:
(1) 创建迁移。 生成数据库更新的代码脚本,用来准备将应用模型同步到数据库。
(2) 更新数据库。通过“创建迁移”的代码脚本,同步数据库。
(3) 自定义迁移代码。有时需要修改或补充应用模型,并同步数据库。
(4) 删除迁移。 删除生成的迁移版本(该版本没有更新到数据库)。
(5) 还原迁移。 撤消回滚数据库更改(该版本已更新到数据库)。
(6) 生成 SQL脚本。 可能需要一个脚本来更新生产数据库,或者对迁移代码进行故障排除。
(7) 在运行时应用迁移。 如果在设计期间更新和运行脚本不是最佳选项时,可在运行时调用 Migrate() 方法。
1.2 安装命令工具
(1)对于Visual Studio开发,建议使用Package Manager Console(程序包管理器控制台)工具,使用windows上的PowerShell脚本。
(2)对于其他开发环境,请选择.NET Core CLI工具,使用dotnet命令是跨平台的。
本篇使用Visual Studio开发,使用Package Manager Console工具来进行迁移管理,用PowerShell脚本,并附带上跨平台管理 的dotnet命令。还是使用Blog和Post应用模型来演示。
二. 命令演示
2.1 创建迁移
在定义初始化模型后,即应创建数据库。 若要添加初始迁移,请运行以下命令,其中InitialCreate属于自定义迁移类名,它继承了DbContext。
PowerShell | dotnet |
---|---|
Add-Migration InitialCreate | dotnet ef migrations add InitialCreate |
关于准备工作和创建迁移注意事项这里不在说明ÿ