> 文章列表 > Abp VNext模块开发

Abp VNext模块开发

Abp VNext模块开发

Abp VNext模块开发

  • 1.创建模块
    • 1.1 第一种方式
    • 1.2 第二种方式
  • 2 添加模块项目到主项
  • 3 主项目EF层实现接口
  • 4 主项目Host层配置接口
  • 5 主项目Host层数据迁移

1.创建模块

1.1 第一种方式

abp new Mom.Frame -t module --no-ui -v 7.0.2 -dbms MySQL

这种方式会生成独立的Host,可以独立调试运行

1.2 第二种方式

直接在主项目下添加模块(在解决方案.sln目录下运行

abp add-module Mom.Frame --new --add-to-solution-file -v 7.0.2 -dbms MySQL

2 添加模块项目到主项目

需要添加下面几层(第二种方式不用添加,已经自动添加了):
Application
Application.Contracts
Domain
Domain.Shared
EntityFrameworkCore
HttpApi

通过下面方式添加到主项目(在解决方案.sln目录下运行

dotnet sln add module/Mom.Frame/src/Mom.Frame.HttpApi.Client/Mom.Frame.HttpApi.Client.csproj

3 主项目EF层实现接口

DBContext 实现模块DBContext接口IEnergyDbContext
OnModelCreating 方法重写builder.ConfigureEnergy()

public class ResourceDbContext : AbpDbContext<ResourceDbContext>, IResourceDbContext, IEnergyDbContext
{/* Add DbSet for each Aggregate Root here. Example:* public DbSet<Question> Questions { get; set; }*/public DbSet<StoreHouse> StoreHouses { get; set; }public DbSet<ProductionStation> ProductionStations { get; set; }public ResourceDbContext(DbContextOptions<ResourceDbContext> options): base(options){}protected override void OnModelCreating(ModelBuilder builder){base.OnModelCreating(builder);builder.ConfigureIdentity();builder.ConfigureResource();builder.ConfigureEnergy();}
}

4 主项目Host层配置接口

  private void ConfigureConventionalControllers(){Configure<AbpAspNetCoreMvcOptions>(options =>{options.ConventionalControllers.Create(typeof(ResourceApplicationModule).Assembly);options.ConventionalControllers.Create(typeof(EnergyApplicationModule).Assembly);});}

5 主项目Host层数据迁移

在终端打开,执行迁移脚本

dotnet ef migrations add Init