潇洒自在丶 2022-03-08 10:21 采纳率: 50%
浏览 23
已结题

请问一下这个升序和降序能够简化为一个方法吗?动态的识别字段来升序降序

不用判断,使用其他的方法或者思路
问题相关代码,请勿粘贴截图
//升序
            if (arr == "Asc")
            {
                var data = (from n in db.New
                            join u in db.User on n.UserId equals u.Id into t1
                            from join_u in t1.DefaultIfEmpty()
                            select new New
                            {
                                Id = n.Id,
                                Title = n.Title ?? null,
                                Describe = n.Describe ?? null,
                                Content = n.Content ?? null,
                                IsDelete = n.IsDelete ?? null,
                                InputTime = n.InputTime ?? null,    
                                UpdateTime = n.UpdateTime ?? null,
                                UserId = n.UserId,
                                UserName = join_u.Name ?? null,
                                UserPwd = join_u.Pwd ?? null,
                                Mob = join_u.Mob ?? null,
                                Email = join_u.Email ?? null
                            });  
                //.Where(u => u.UserId == userid || u.UserId == null && u.IsDelete == "0" &&  EF.Functions.Like(u.Title,"%"+title+"%")).OrderBy<New, TKey>(expression).Skip((pageIndex - 1) * PageSize).Take(PageSize)
                data = (IQueryable<New>)data.Where(u => u.IsDelete == "0" && EF.Functions.Like(u.Title, "%" + title + "%")).OrderBy<New, TKey>(expression).Skip((pageIndex - 1) * PageSize).Take(PageSize).AsEnumerable();
                return data;
            }
            else
            {
                var data = (from n in db.New
                            join u in db.User on n.UserId equals u.Id into t1
                            from join_u in t1.DefaultIfEmpty()
                            select new New
                            {
                                Id = n.Id,
                                Title = n.Title ?? null,
                                Describe = n.Describe ?? null,
                                Content = n.Content ?? null,
                                IsDelete = n.IsDelete ?? null,
                                InputTime = n.InputTime ?? null,
                                UpdateTime = n.UpdateTime ?? null,
                                UserId = join_u.Id,
                                UserName = join_u.Name ?? null,
                                UserPwd = join_u.Pwd ?? null,
                                Mob = join_u.Mob ?? null,
                                Email = join_u.Email ?? null
                            });  
                //.Where(u => u.UserId == userid || u.UserId == null && u.IsDelete == "0" &&  EF.Functions.Like(u.Title,"%"+title+"%")).OrderBy<New, TKey>(expression).Skip((pageIndex - 1) * PageSize).Take(PageSize)
                data = (IQueryable<New>)data.Where(u => u.IsDelete == "0" && EF.Functions.Like(u.Title, "%" + title + "%")).OrderByDescending<New, TKey>(expression).Skip((pageIndex - 1) * PageSize).Take(PageSize).AsEnumerable();
                return data;
            }

运行结果及报错内容
我的解答思路和尝试过的方法
简化为一个方法,不用if else

img

  • 写回答

1条回答 默认 最新

  • _雪菜肉丝面_ 2022-03-08 10:40
    关注

    找不同即可。
    不同之处在于23,47行的OrderByDescending

    所以那一大串可以并成一块,
    但是data还是要分

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月16日
  • 已采纳回答 3月8日
  • 创建了问题 3月8日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度