首页 新闻 会员 周边

.NET: LINQ 如何通过参数传入 OrderBy

0
悬赏园豆:30 [已解决问题] 解决于 2024-01-26 21:55

下面的 C# 代码中想通过方法参数传入 OrderBy,请问如何实现?

public async Task<List<T>> GetBlogSites<T>(
    int pageIndex,
    int pageSize,
    <?> orderBy)
{
    return await _blogSiteRepository.GetValidBlogs()
        // 如何通过参数传入OrderBy
        .OrderBy(x => x.LastPublished) 
        .Page(pageIndex, pageSize)
        .ProjectToType<T>()
        .ToListAsync();
}
dudu的主页 dudu | 高人七级 | 园豆:30994
提问于:2024-01-26 21:32
< >
分享
最佳答案
0

通过 Func<IQueryable<BlogSite>, IOrderedQueryable<BlogSite>> 解决了

public async Task<List<T>> GetBlogSites<T>(
    int pageIndex,
    int pageSize,
    Func<IQueryable<BlogSite>, IOrderedQueryable<BlogSite>> orderBy)
{
    var query = _blogSiteRepository.GetValidBlogs();
    query = orderBy.Invoke(query);
    return await query.Page(pageIndex, pageSize)
        .ProjectToType<T>()
        .ToListAsync();
}

参考 How to use Func with IQueryable that returns IOrderedQueryable

dudu | 高人七级 |园豆:30994 | 2024-01-26 21:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册