潇洒自在丶 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日

悬赏问题

  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan