【发布时间】:2023-03-09 19:12:01
【问题描述】:
我需要将参数传递给 linq 查询。我的查询如下:
var appointments = (from a in inMemContext.Appointments
join u in inMemContext.Users on a.UserId equals u.UserId into AppointmentAssignments
from aa in AppointmentAssignments.DefaultIfEmpty()
join l in inMemContext.Languages on a.PreferredLanguage equals l.LanguageKey
where a.BranchId == branchId
&& a.AppointmentDate.Date == TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById(b.TimeZoneId)).Date
orderby a.AppointmentTime
select new AppointmentEntryDetailsDto
{
Id = a.AppointmentId.ToString(),
StartTime = (a.AppointmentTime).ToString("hh:mm tt", CultureInfo.InvariantCulture),
AppointmentType = a.AppointmentType.AppointmentTypeName,
});
在上述查询中,我正在获取由AppointmentTime 排序的数据。现在我需要将动态排序值设置为升序或降序。
对于这一行:
orderby a.AppointmentTime [OrderParameter]
升序或降序。我该怎么做?
【问题讨论】:
-
如果您将 linq 查询转换为 linq 表达式,您可以更轻松地动态设置这些内容。