ABP 極簡入門教程(一)


本示例不講概念,只講怎么用,概念性的內容沒有比官方文檔更清楚的了,我也正在學習,可能理解的地方有不對的歡迎一起交流,但需要您了解以下內容才能看明白

  • asp.net core
  • Entity Framework ,數據遷移
  • DDD領域驅動設計 (Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)
  • Castle windsor (依賴注入容器)
  • AutoMapper(實現Dto類與實體類的雙向自動轉換)
  • Bootstrap 
  • jQuery

Abp下載,MVC項目 Multi Page Web Application 項目名Sample

項目結構

Sample.Core下新建Territory目錄,新建Province模型類

using Abp.Domain.Entities;

namespace Sample.Territory
{
    public class Province : Entity<int>
    {
        public string Name { get; set; }
    }
}

Sample.EntityFrameworkCore類庫下找到EntityFrameworkCore目錄下的SampleDbContext修改如下

using Microsoft.EntityFrameworkCore;
using Abp.Zero.EntityFrameworkCore;
using Sample.Authorization.Roles;
using Sample.Authorization.Users;
using Sample.MultiTenancy;
using Sample.Territory;

namespace Sample.EntityFrameworkCore
{
    public class SampleDbContext : AbpZeroDbContext<Tenant, Role, User, SampleDbContext>
    {
        /* Define a DbSet for each entity of the application */

        public SampleDbContext(DbContextOptions<SampleDbContext> options)
            : base(options)
        {
        }

        //DBSet類表示一個實體的集合
        public DbSet<Province> Provinces { get; set; }
        
        //如果需要變更數據庫表名需要使用
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<Province>().ToTable("Province");
        }
    }
}

數據遷移,實體類轉為數據表

PM> Add-Migration addProvince
Build started...
Build succeeded.
To undo this action, use Remove-Migration.
PM> update-database
Build started...
Build succeeded.
Applying migration '20200610003957_addProvince'.
Done.

 Sample.Application類庫下新建Territory目錄,添加ProvinceAppService類,因需求abp提供的方法已經足夠使用,故未添加IProvinceAppService接口

using Abp.Application.Services;
using Abp.Domain.Repositories;
using Sample.Territory.Dto;

namespace Sample.Territory
{
    /// <summary>
    /// abp提供的常用增刪改查方式
    /// </summary>
    public class ProvinceAppService:AsyncCrudAppService<Province,ProvinceDto>
    {
        public ProvinceAppService(IRepository<Province, int> repository) : base(repository)
        {
        }
    }
}

Territory目錄下新建Dto目錄, 並添加ProvinceDto實體類

using Abp.Application.Services.Dto;
using Abp.AutoMapper;

namespace Sample.Territory.Dto
{
    [AutoMapFrom(typeof(Province))]
    public class ProvinceDto :EntityDto<int>
    {
        public string Name { get; set; }
    }
}

同目錄新建ProvinceProfile類,自動映射

using AutoMapper;

namespace Sample.Territory.Dto
{
    public class ProvinceProfile : Profile
    {
        public ProvinceProfile()
        {
            CreateMap<ProvinceDto, Province>();
        }
    }
}

選中Sample.Web.Host設為啟動項,所有Api已經自動設置好,並可以測試,效果如下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM