首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq和动态Linq OrderBy

Linq和动态Linq OrderBy
EN

Stack Overflow用户
提问于 2014-04-18 17:40:48
回答 1查看 276关注 0票数 0

我在nhibernate中使用linq,当我尝试使用动态Linq来使用OrderBy时,我遇到了问题:

代码语言:javascript
复制
        var bugAndFeatures = (from u in session.Query<BugAndFeature>()
                              let uEmployeeFullName = string.Format("{0} {1}", u.Employee.Surname, u.Employee.FirstName)
                              where u.IsDelete == false
                              select new BugAndFeatureView()
                              {
                                  Id = u.Id,
                                  Title = u.Title,
                                  Description = u.Description,
                                  EmployeeFullName = uEmployeeFullName,
                                  EmployeeLogin = u.Employee.User.Login,
                                  AssignedEmployeeId = u.AssignedEmployee == null ? 0 : u.AssignedEmployee.Id,
                                  AssignedEmployeeFullName = string.Format("{0} {1}", u.AssignedEmployee.Surname, u.AssignedEmployee.FirstName),
                                  CreateDate = u.CreateDate.Equals(null) ? string.Empty : u.CreateDate.ToString(),
                                  LastUpdateDate = u.LastUpdateDate.Equals(null) ? string.Empty : u.LastUpdateDate.ToString()
                              }
                     );

在那之后,我想使用动态linq和像OrderBy("EmployeeFullName DESC")这样的OrderBy,但我不能这样做,因为我有异常。我注意到,当我在没有格式化或检查null等的属性上执行OrderBy时,我没有这个问题,只有当我尝试使用格式化的属性进行排序时才会发生这个问题。如果我在OrderBy之前执行ToList(),那么我就不会有这个问题,但我不想这样做,我需要使用IQueryable。

如何修改此查询以解决我的问题?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-04-18 17:48:04

你有没有这样尝试过:

代码语言:javascript
复制
var Results = bugAndFeatures.ToList().OrderBy(p => p.EmployeeFullName);

 IQueryable<Foo> query = ...;

 switch (orderByParameter)
                {
                    case "SomeValueParamter":
                        query = query.OrderBy(x => x.SomeValueParamter);
                        break;
                    case "SomeValueParamter":
                        query = query.OrderBy(x => x.SomeValueParamter);
                        break;
                    // etc
                }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23151463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档