首先介绍下项目下的几个类库
*****.Application :编写自动控制器service的地方 应用层
*****.Contracts:存放dto实体(比如保存数据时不需要保存id我们dto实体中没有id属性) 应用层
*****.Domain:存放实体类 领域层
*****.Domain.Shared:理解为共享域(比如存放一些枚举类) 领域层
*****.DbMigrator:用于数据迁移
*****.EntityFrameworkCore:如果使用code first方式此类库需要映射表 基础设施层
*****.EntityFrameworkCore.DbMigrations:后续做操作更新数据库使用类库 基础设施层
*****.HttpApi.Host:启动项目所有控制器存放地。指向swagger 宿主示例
领域层 :Domain+Domain.shared:最核心的,Domain.shared主要做一些数据共享像枚举什么的,可以被上层领域的东西,领域规则呀什么的都写在这里面
应用层:APPlication+Contracts 写业务逻辑,主要在一些业务协调
展现层:Web 展现view
远程服务层:HttpApi+Client 其实跟上面应用层差不多,不过我们常用的就是应用层
基础设施层: EntityFrameworkCore EntityFrameworkCore.DbMigrations 封装了很多基础的设施
该解决方案使用Entity Framework Core Code First 迁移. 你需要应用迁移来创建数据库,有两种方法迁移数据库,如果不想使用code first方式创建数据库可以手动建库不采用本篇文章,直接在host项目下修改连接字符串直接调用数据库
1.使用DbMigrator应用程序应用迁移
该解决方案包含一个控制台应用程序(在此示例中名为Test1111.DbMigrator
),可以创建数据库,应用迁移和初始化数据. 它对开发和生产环境都很有用.
.DbMigrator
项目有自己的appsettings.json
. 因此,如果你更改了上面的连接字符串,则还应更改此字符串.
"ConnectionStrings": {
//"Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=Test11111;Trusted_Connection=True;MultipleActiveResultSets=true"默认使用localdb数据库
"Default": "Server=123.123.123.123; Database=Test; Persist Security Info=True;User ID=sa;Password=123;Packet Size=512;"//这里我是用sqlserver数据库
}
右键单击.DbMigrator
项目并选择 设置为启动项目:
按F5(或Ctrl + F5)运行应用程序. 它将具有如下所示的输出:
查看数据库已经生成Test数据库
2.使用EF Core Update-Database命令
Ef Core具有Update-Database
命令, 可根据需要创建数据库并应用挂起的迁移. 右键单击.Host
项目并选择设置为启动项目:
右键单击.Host
项目并选择设置为启动项目:
打开包管理器控制台(Package Manager Console), 选择.EntityFrameworkCore.DbMigrations
项目作为默认项目并运行Update-Database
命令:
这将基于配置的连接字符串创建新数据库.
使用
.DbMigrator
工具是建议的方法, 因为它能初始化初始数据能够正确运行Web应用程序.如果你只是使用
Update-Database
命令,你会得到一个空数据库,所以你无法登录到应用程序因为数据库中没有初始管理用户. 不需要种子数据库时,可以在开发期间使用Update-Database
命令. 但是使用.DbMigrator
应用程序会更简单,你始终可以使用它来迁移模式并为数据库添加种子.
运行应用程序
最后确保 .Host
是启动项目,并且修改host下的appsettings.json中的链接字符串
,运行应用程序后会在你的浏览器打开Swagger 页面.
所有的api都会展示
abp cli方式安装 ABP vNEXT-1安装ABP 官方提供的CLI工具 - HackerVirus - 博客园