9.20 模型生成数据库
开始之前
Fur.Web.Entry
层需要安装 Microsoft.EntityFrameworkCore.Tools
包。
#
9.20.1 数据库开发方式Furion
提供两种主要方法来 保持实体模型和数据库架构同步。
至于我们应该选用哪个方法,请确定你是希望以实体模型为准还是以数据库为准:
如果希望 以实体模型为准,请使用正向工程(Code First)。 对实体模型进行更改时,此方法会以增量方式将相应架构更改应用到数据库,以使数据库保持与实体模型兼容。
如果希望 以数据库架构为准,请使用反向工程(Database First)。 使用此方法,可通过将数据库架构反向工程到实体模型来生成相应的实体类型。
本章节是 正向工程(Code First) 的相关内容。
#
9.20.2 操作指南特别注意
Furion
框架默认数据迁移的程序集为:Furion.Database.Migrations
,所以如果您改了程序集名称或通过 Nuget
方式安装的 Furion
包,则需要配置迁移程序集名称:
另外,如果应用中配置了多个数据库上下文,那么所有的 迁移命令
都需要指定 -Context 数据库上下文名称
参数。如:
Person
#
9.20.2.1 创建实体模型 实体约定
所有数据库实体必须直接或间接继承 IEntity
接口。
程序包管理控制台
#
9.20.2.2 打开 
#
9.20.2.3 切换默认项目将 程序包管理控制台
默认项目设置为 Furion.Database.Migrations

#
9.20.2.4 创建模型版本特别说明
v1.0.0 是此处数据库更改的版本号,可以写任何字符串,但推荐写版本号,每次 +1。
最终命令如下:
生成成功后,Furion.Database.Migrations
项目下会新增 Migrations
文件夹(如果没有),同时本次的架构生成文件,如:

#
9.20.2.5 更新到数据库执行该命令后,数据库就会自动根据模型生成对于的表。
小知识
如果 Update-Database
后面带字符串参数,则会自动还原数据库到指定版本,如:
将数据库还原到 v0.0.3
版本
#
9.20.3 更新模型如果模型改变了,重复上面操作即可,如:
Sql
#
9.20.4 导出 有些时候,我们没有直接更新数据库的权限,或者怕出问题,我们都会先生成 Sql
看看,这时候只需要通过 Script-Migration
导出即可,如:

VS Code
方式#
9.20.5 dotnet ef
#
9.20.5.1 安装 cd
目录#
9.20.5.2 通过 VS Code
打开 .sln
所在的目录,如:framework
。
之后进入 Furion.Database.Migrations
目录
#
9.20.5.3 执行命令#
9.20.6 反馈与建议与我们交流
给 Furion 提 Issue。
了解更多
想了解更多 正向工厂
知识可查阅 EF Core - 管理数据库架构 章节。