【发布时间】:2009-10-07 19:57:00
【问题描述】:
我有以下 LINQ 方法,它从 User Control 调用并直接转储到标准 DataGridView。我的用户希望它默认排序,首先是DisenrollmentDate,然后是Member Name。现在,使用下面的代码,它仅按DisenrollmentDate 排序。
BLLCmo.cs
public static DataTable GetAllMembers(Guid workerID)
{
var AllEnrollees = from enrollment in context.tblCMOEnrollments
where enrollment.CMOSocialWorkerID == workerID || enrollment.CMONurseID == workerID
join supportWorker in context.tblSupportWorkers on enrollment.EconomicSupportWorkerID equals supportWorker.SupportWorkerID into workerGroup
from worker in workerGroup.DefaultIfEmpty()
orderby enrollment.DisenrollmentDate ascending
select new
{
enrollment.ClientID,
MemberName = BLLConnect.MemberName(enrollment.ClientID),
NurseName = BLLAspnetdb.NurseName(enrollment.CMONurseID),
SocialWorkerName =BLLAspnetdb.SocialWorkerName(enrollment.CMOSocialWorkerID),
enrollment.DisenrollmentDate,
enrollment.EnrollmentDate,
ESFirstName = worker.FirstName,
ESLastName = worker.LastName,
ESPhone = worker.Phone
};
var dataTable = AllEnrollees.CopyLinqToDataTable();
return dataTable;
}
BLLConnect.cs
public static String MemberName(Int32 personID)
{
var memberName = from person in context.tblPersons
where person.PersonID == personID
orderby person.LastName ascending
select person.FirstName + " " + person.LastName;
return memberName.SingleOrDefault();
}
【问题讨论】:
标签: c# .net linq linq-to-sql sorting