我使用的是在NHibernate中LINQ和我有問題,當我嘗試使用排序依據使用動態的LINQ:LINQ的LET和動態的LINQ排序依據
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。
如何修改此查詢來解決我的問題?
感謝您的幫助。
看一看http://stackoverflow.com/questions/41244/dynamic-linq-orderby-on-ienumerablet – Thewads