最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

5)內(nèi)容系統(tǒng)表的搭建&自定義倉儲CURD

2022-11-05 22:30 作者:紫檀清香  | 我要投稿

本來是想使用abp的CMS模塊但發(fā)現(xiàn)里面的東西有點多也不太符合我現(xiàn)有網(wǎng)站的數(shù)據(jù)結(jié)構(gòu),有興趣的小伙伴可下載abp源碼看看,里面有很多值得借鑒的地方

abp源碼
abp cms源碼

下面列一下個人網(wǎng)站博客框架一些常用的功能(可借鑒abp cms ~):

  • 內(nèi)容

  • 分類

  • 標(biāo)簽

  • 動態(tài)頁面

  • 輪播圖(廣告輪播)

  • 導(dǎo)航菜單(可有可無)

  • 評論 (不需要,后面有空單獨做個評論系統(tǒng)的功能)

在 YiAim.Cms.Domain項目新建 Blogs文件夾用于存放所有cms相關(guān)的實體表


  • Blog(內(nèi)容)、Category(分類)這里允許文章里面分類為空




  • Tag 標(biāo)簽


  • TagMap 標(biāo)簽與文章關(guān)聯(lián)表

??

在YiAim.Cms.EntityFrameworkCore\CmsDbContext 里面的 OnModelCreating 方法配置

?

進(jìn)行數(shù)據(jù)遷移,生成表如下

自定義倉儲接口

在YiAim.Cms.Domain\Blogs文件夾里面新建IRepositories文件夾用于存放blog相關(guān)的自定義倉儲 如:IBlogRepository 繼承IBasicRepository或者 IRepository

abp框架中已經(jīng)默認(rèn)給我們實現(xiàn)了默認(rèn)的通用(泛型)倉儲IRepository<TEntity, TKey>,有著標(biāo)準(zhǔn)的CRUD操作,具體可以在:https://docs.abp.io/zh-Hans/abp/latest/Repositories 查看更多 之所以實現(xiàn)自定義倉儲是因為有些東西是abp沒有給我們,如實現(xiàn)批量插入、更新的方法;(微軟官方推薦的EFCore的工具與擴(kuò)展 https://learn.microsoft.com/zh-cn/ef/core/extensions/)

IBlogRepository.cs


既然定義了倉儲那就實現(xiàn),不然調(diào)用的時候會報錯

在YiAim.Cms.EntityFrameworkCore里面新建 Repositories文件夾,里面新建BlogRepository.cs 使用 EF Core 需要繼承?EfCoreRepository<TDbContext, TEntity, TKey>?和自定義倉儲接口IXxxRepository

BlogRepository.cs


接下來在就可以在.Application服務(wù)層愉快的讀取數(shù)據(jù)了,寫服務(wù)之前,先分析項目需要哪些功能業(yè)務(wù)。由于是個人網(wǎng)站(博客項目),無非就是增刪改查,后期對網(wǎng)站進(jìn)行優(yōu)化是添加緩存、定時任務(wù)之類的功能一個簡單的網(wǎng)站差不多就成型了。

在YiAim.Cms.Application.Contracts定義api接口、DTO模型 (DTO就是從我們的領(lǐng)域模型中抽離出來的對象,它只包含我們要拿的數(shù)據(jù),不參雜任何行為邏輯) 新建Blogs文件夾,然后再來新建IBlogService繼承IApplicationService,里面定義我們業(yè)務(wù)需要的數(shù)據(jù)接口

在YiAim.Cms.Application實現(xiàn)接口


新建Blogs文件夾,然后再來新建BlogService繼承ApplicationService,IBlogService

測試調(diào)用

在Controller中調(diào)用,可以直接注入服務(wù)的方式實現(xiàn) 如:在 YiAim.Cms.HttpApi ,新建Controller

HelloAbpController.cs 繼承 CmsController,CmsController為創(chuàng)建abp項目默認(rèn)有的一個基類,它里面已經(jīng)默認(rèn)繼承了abp的基類

//CmsController


然后運行項目,訪問?https://localhost:44377/HelloAbp/test?就可以看到結(jié)果了(前提是你的數(shù)據(jù)庫里面有內(nèi)容)

結(jié)果1
結(jié)果

總計 abp的數(shù)據(jù)訪問

  • 1.創(chuàng)建實體,完成實體與數(shù)據(jù)庫表的映射關(guān)系

  • 2.自定義倉儲方法及實現(xiàn)對應(yīng)的讀取方法,一般來說使用abp提供的倉儲方法已經(jīng)夠小型的項目使用

最后,abp提供了 自動API控制器,不需要我們寫controller,直接在服務(wù)層配置就可以自動生成api接口,詳情請看 https://docs.abp.io/zh-Hans/abp/latest/API/Auto-API-Controllers

后面我們的這個項目也基本使用這種模式開發(fā),減少工作量&也方便測試。

在來看一下 自動api控制器生成的api接口,打開swagger就可以看到對應(yīng)api,還可以方便測試。

結(jié)果2

此時整個項目目錄結(jié)構(gòu)如下:

本章已經(jīng)完成了表的搭建&自定義倉儲CURD,Entity Framework Core的數(shù)據(jù)訪問,由于代碼太多這里就不全部帖出來,相信各位小伙伴都能完成。有需要的也可以直接拉取項目。下章我們將對接vue項目完成UI界面的操作。



5)內(nèi)容系統(tǒng)表的搭建&自定義倉儲CURD的評論 (共 條)

分享到微博請遵守國家法律
日喀则市| 科技| 深圳市| 调兵山市| 金湖县| 武胜县| 黔西县| 航空| 通道| 图片| 营口市| 大庆市| 舟山市| 南京市| 武义县| 繁昌县| 榆社县| 保定市| 南投县| 马龙县| 大庆市| 华蓥市| 涿鹿县| 定边县| 台山市| 宁国市| 买车| 云龙县| 万宁市| 池州市| 宾阳县| 天台县| 开平市| 梅河口市| 潼关县| 岱山县| 定陶县| 海淀区| 台山市| 阳西县| 惠安县|