如何对IQueryable中的派生列进行排序

时间:2019-05-28 12:40:14

标签: c# entity-framework linq

我有一列需要从IQueryable返回的结果集中派生。我也想对该列进行排序。我该怎么做??

var opportunities = this.GetUserOpportunitiesByQuery(request, statusOpp)
                .Include(x => x.CompanyId__Parent)
                .Include(x => x.ApprovalStatus__Parent)
                .Include(x => x.OpportunityStatus)
                .Include(x => x.MeetingType__Parent);

在结果中存在的列上,我们对它们进行如下排序:-

var sortBy = request.SortBy?.FirstOrDefault();
    if (sortBy != null)
    {
        var asc = sortBy.Direction == SortingDirection.Ascending;
        switch (sortBy.PropertyName.ToLower())
        {
            case "name":
                opportunities = asc
                    ? opportunities.OrderBy(c => c.Name)
                    : opportunities.OrderByDescending(c => c.Name);
                break;


var results = opportunities.Skip(request.Skip).Take(request.Take).ToList();

我需要对派生列执行与上述相同的操作。我可以有一个函数来派生并调用它。我只是不清楚我们如何做到这一点。

我知道我可以执行.ToList()并计算派生的列并对其进行排序。但是我认为这样可以在内存中对查询进行排序。我可以使用IQueryable做到这一点吗?

0 个答案:

没有答案