分组通过Lambda表达式使用两列以上的列
我必须在lambda表达式中转换我给定的linq查询。 即
var scholars = (from scholar in db.Scholars join suspension in db.Suspensions on scholar.ID equals suspension.ScholarID where suspension.StartDate >= startDate && suspension.EndDate x.Suspensions.Sum(y => y.SuspensionDays)) }) .ToList() .OrderBy(x=> x.FullName);
这是你的lambda:
var scholars = db.Scholars.Join(db.Suspensions, scholar => scholar.ID, suspension => suspension.ScholarID, (scholar, suspension) => new {scholar, suspension}) .Where(u => u.suspension.StartDate >= startDate && u.suspension.EndDate <= endDate) .GroupBy(u => new { u.scholar.ID, u.scholar.FirstName, u.scholar.LastName }) .Select(u => new { FullName = u.Key.FirstName + " " + u.Key.LastName, TotalSuspensionSum = u.Sum(x => x.scholar.Suspensions.Sum(y => y.SuspensionDays) ) }) .OrderBy(x => x.FullName) .ToList();
好吧,我不认为我应该为你做所有的工作,但特别是你要问的小组可以这样做:
...GroupBy(x => new { x.ID, x.FirstName, x.LastName })...
- unit testingHtmlHelper扩展方法失败
- 如果声明是接口,则编译器不会识别generics中的属性
- 身份密码重置令牌无效
- 如何使用OpenXML Sdk替换Paragraph的文本
- C# – Parallel.Invoke和Parallel.ForEach本质上是一回事吗?
- 将文件发送到XPS打印机
- Silverlight – LinqToEntities – 如何返回匿名类型
- entity framework实体不在DataSpace.OSpace(_workspace.GetItemCollection(DataSpace.OSpace))中,而是在DataSpace.CSpace中
- 使内部类对其他程序集可见