AbpVnext的微服务落地 手动落地
1.微服务电商项目的创建

1.前提:微服务概念 DDD概念 Abpvnext 框架 mysql 5.7 .NET5基础
2.落地工具:
2.1:ABP CLI 访问
使用下列命令 添加 Abp cli命令工具
1 dotnet tool install -g Volo.Abp.Cli
2.1 : VS2019 vs2022 均可
VS下载地址 点击此地址下载
3.基于以上技术点创建微服务电商项目:
按照微服务架构图所示 网关层 聚合层 服务层 数据层 按照ABP的标准我会将各个微服务的业务独立为模块 我将创建以下四个模块
解决方案结构:
使用Cli创建解决方案 新建名为XXX.MicroServices文件夹 进入 打开cmd
abp new Ebusiness.Microservices -t console -o Ebusiness.Microservices -v 4.4.3
使用命令 创建解决方案

3.1:用户微服务
进入console目录打开 cmd 执行
3.2:商品微服务
3.3:订单微服务
abp new Ebusiness.Order -t module –dbms mysql –no-ui -o moduls\Ebusiness.Order -v 4.4.3
3.4:支付微服务
2.微服务电商项目的引入
添加解决方案文件夹 moduls microservices如图 添加引用

项目整理
创建完成后 注意Host项目的引用

移除包 并添加 Nuget引入包:Volo.Abp.EntityFrameworkCore.MySQL 版本 4.4.3


3.微服务电商项目的数据库迁移
迁移项目 加上自己的领域实体
进入 Ebusiness.Order.HttpApi.Host 目录,运行命令:dotnet ef migrations add productservice
会生成一个迁移目录:Migrations
执行迁移,更新数据库:dotnet ef database update
此操作只会生成一个空数据库
如果要实现可以迁移表:
1,Ebusiness.Order.HttpApi.Host 项目的 OrderHttpApiHostModule,typeof(AbpEntityFrameworkCoreMySQLModule)
2,Ebusiness.Order.EntityFrameworkCore 项目的 OrderDbContext,添加:
public DbSet<Orders> Orders { get; set; }
3,Ebusiness.Order.EntityFrameworkCore 项目的 OrderDbContextModelCreatingExtensions,添加:
builder.Entity<Orders>(b =>
{
b.ConfigureByConvention();
b.HasMany(u => u.OrderItems).WithOne().HasForeignKey(ur => ur.OrderId).IsRequired();
});
4.微服务电商向的运行
打开文件夹 进入 Ebusiness.Order.HttpApi.Host 运行:dotnet run

浙公网安备 33010602011771号