我有一张桌子
StudentName / Classroom / GradeA / GradeB / GradeC / GradeDate
学生的课堂是固定的,以便专栏永远不会改变。
每位学生都有多个GradeA,GradeB和GradeC值以及不同的GradeDate。
public virtual IList<ClassroomDetail> GetLatestClassroomDetail(string classroom)
{
var query = from pc in _classroomDetailRepository.Table
where pc.Classroom == classroom
select pc;
var result = new List<ClassroomDetail>(query);
return result;
}
以上查询返回所有内容,列表中有多个相同的学生。
我怎样才能获得最新值?
表:
ClassroomMaster
ClassroomDetail
在控制器上
var bdetail = _classroomService.GetLatestClassroomDetail(classroom).OrderBy(d => d.StudentName);
var model = new List<ClassroomDetail>();
foreach (var pr in bdetail)
{
model.Add(new ClassroomDetail
{
Id = pr.Id,
Classroom = pr.Classroom,
StudentName = pr.StudentName,
GradeA = pr.GradeA,
GradeB = pr.GradeB,
GradeC = pr.GradeC,
GradeDate = pr.GradeDate,
});
}
return PartialView(model);
答案 0 :(得分:1)
我终于找到了解决方案:D
public virtual IList<ClassroomDetail> GetLatestClassroomDetail(string classroom)
{
var query = _classroomDetailRepository.Table
.Where(z => z.Classroom == classroom)
.GroupBy(x => x.StudentName)
.Select(x => x.OrderByDescending(y => y.GradeDate).Take(1).FirstOrDefault());
var result = new List<BunkerPriceDetail>(query);
return result;
}
答案 1 :(得分:1)
它将解决您的问题
var query = _classroomDetailRepository.Table
.Where(a => a.Classroom == classroom)
.Select(b => b.OrderByDescending(y => y.GradeDate).Take(1).FirstOrDefault());