天天看點

3.abp架構code first方式建立表

首先介紹下項目下的幾個類庫

*****.Application :應用層   編寫自動控制器service的地方

*****.Contracts:存放dto實體(比如儲存資料時不需要儲存id我們dto實體中沒有id屬性)

*****.Domain:領域層   存放實體類

*****.Domain.Shared:了解為共享域(比如存放一些枚舉類)

*****.EntityFrameworkCore:如果使用code first方式此類庫需要映射表

*****.EntityFrameworkCore.DbMigrations: 基礎層  後續做操作更新資料庫使用類庫

EntityFrameworkCore/Test11111DbContext.cs檔案   EntityFrameworkCore/Test11111DbContextModelCreatingExtensions.cs

*****.HttpApi.Host:啟動項目所有控制器存放地。指向swagger

1.首先在.Domain類庫中建立實體

using Volo.Abp.Domain.Entities.Auditing;

Book繼承聚合根

3.abp架構code first方式建立表

2.在.Shared中建立BookType

3.abp架構code first方式建立表

3.在.EntityFrameworkCore添加映射

3.abp架構code first方式建立表
3.abp架構code first方式建立表

4.在程式包管理器控制台選擇.EntityFrameworkCore.DbMigrations 執行 add-migration "所作的操作",update-database成功後會彈出執行檔案

3.abp架構code first方式建立表
3.abp架構code first方式建立表

檢視資料庫生成了AppBooks表

3.abp架構code first方式建立表

5.在.Application.Contracts建立Dto實體以便後期增删改查使用

using Volo.Abp.Application.Dtos;

BookDto繼承實體Dto

3.abp架構code first方式建立表

using System.ComponentModel.DataAnnotations;

3.abp架構code first方式建立表

using Volo.Abp.Application.Dtos;

using Volo.Abp.Application.Services; 

官方文檔中提到

  • 架構定義應用程式服務的接口不是必需的. 但是,它被建議作為最佳實踐.
  • ICrudAppService

    定義了常見的CRUD方法:

    GetAsync

    ,

    GetListAsync

    ,

    CreateAsync

    ,

    UpdateAsync

    DeleteAsync

    . 你可以從空的

    IApplicationService

    接口繼承并手動定義自己的方法(将在下一部分中完成).
  • ICrudAppService

    有一些變體, 你可以在每個方法中使用單獨的DTO,也可以分别單獨指定(例如使用不同的DTO進行建立和更新).

是以此接口可以不必建立 

3.abp架構code first方式建立表

6.在.Application類庫中的****ApplicationAutoMapperProfile中添加實體對Dto的映射關系,不然調用自動控制器時會報錯

3.abp架構code first方式建立表

繼續閱讀