天天看點

《ASP.ENT Core 與 RESTful API 開發實戰》-- (第6章)-- 讀書筆記(上)

在 EF Core 中,資料的查詢通過內建語言查詢(LINQ)實作,它支援強類型,支援對 DbContext 派生類的 DbSet 類型成員進行通路,DbSet 類實作了 IQueryable 和 IEnumerable 接口,LINQ 形式的查詢會通過資料庫提供程式轉換為資料庫查詢語言,并最終傳回實體集合

接下來,在 Library.API 項目中實作分頁功能

添加一個 AuthorResourceParameters 類

修改 GetAuthorsAsync 方法實作分頁

完成之後可以請求 URL: http://localhost:5001/api/author?pageNumber=2&pageSize=3

添加分頁中繼資料

首先建立一個分頁清單類

在 IAuthorRepository 添加一個方法

在 AuthorRepository 添加實作方法

為了使建立 PagedList 的邏輯具有通用性,可以在 PagedList 類中添加一個靜态方法 CreateAsync

在 GetAllAsync 中使用

接下來,在 AuthorController 中重構 GetAuthorsAsync 代碼

以 Get 方法請求 URL 後,伺服器不僅傳回所請求的資源,并且在響應的消息頭中包含了分頁中繼資料,可以通過 previousePageLink,nextPageLink 的 URL 值直接通路上一頁以及下一頁資料

過濾,是對資源的一個或多個屬性與指定的參數值進行比對并篩選

通過出生地過濾作者,首先在 AuthorResourceParameters 中添加 BirthPlace 屬性

然後,修改 AuthorRepository 的 GetAllAsync 方法

接着,修改 AuthorController 的 GetAuthorsAsync 方法中生成分頁資料的代碼,添加過濾資訊

完成之後可以請求 URL: https://localhost:5001/api/authors?birthplace=beijing&pagesize=2

這樣可以看到下一頁的 URL 中不僅包含分頁參數,也包含過濾參數

搜尋功能的實作方式與過濾一樣

首先在 AuthorResourceParameters 中添加 SearchQuery 屬性

完成之後可以請求 URL: https://localhost:5001/api/authors?searchQuery=author&birthplace=beijing&pagesize=2

這樣可以看到下一頁的 URL 中不僅包含分頁參數,也包含過濾參數和查詢參數

《ASP.ENT Core 與 RESTful API 開發實戰》-- (第6章)-- 讀書筆記(上)
《ASP.ENT Core 與 RESTful API 開發實戰》-- (第6章)-- 讀書筆記(上)

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協定進行許可。

歡迎轉載、使用、重新釋出,但務必保留文章署名 鄭子銘 (包含連結: http://www.cnblogs.com/MingsonZheng/ ),不得用于商業目的,基于本文修改後的作品務必以相同的許可釋出。

如有任何疑問,請與我聯系 ([email protected]) 。