ABP vNext5.0倉儲獲取IQueryable問題


ABP vNext5.0發布后,原有用法有一些地方發生了細小的變化。對於代碼編寫影響最為廣泛的一條大概就是IRepository不在繼承自IQueryable<TEntity>接口

在4.4.4及之前版本中,我們可以看到IRepository繼承自IQueryable<TEntity>接口如下圖:

 

 所以我們可以通過Repository的AsQueryable()方法獲取IQueryable對象或者使用Linq中為IQueryable<TEntity>提供的Where當方法。

在ABP vNext 5.0后,可以看到IResponse不再繼承自IQueryable接口,上述用法則無法成立。

通過翻找官方源碼我發現,倉儲中提供了方法GetQueryableAsync用於獲取IQueryable對象用於代替原AsQueryable方式,用法如下:

var query = await _repository.GetQueryableAsync();

獲取IQueryable對象后,我們依舊可以使用Linq提供的方法對其進行拼接和操作:

var query = (await _epository.GetQueryableAsync()).Where(x => x......


免責聲明!

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



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