Linq使用如何使用order by和group by与left join?

Linq使用如何使用order by和group by与left join?,linq,Linq,我已经在linq中使用左连接和group by和order by编写了这个查询。我有两张桌子,学生桌和课程桌。所以我在课程中并没有得到任何列之后,就在学生表上分组,所以我怎样才能按datetime列中的课程表排序 学生: id、名称、std 表格课程: id,userid,datetime 这是我的疑问: var res = (from u in db.student join c in db.course on u.id equals c.userid into

我已经在linq中使用左连接和group by和order by编写了这个查询。我有两张桌子,学生桌和课程桌。所以我在课程中并没有得到任何列之后,就在学生表上分组,所以我怎样才能按datetime列中的课程表排序

学生:

id、名称、std

表格课程:

id,userid,datetime

这是我的疑问:

 var res = (from u in db.student
              join c in db.course on u.id equals c.userid into j1
              from j2 in j1.DefaultIfEmpty()                       
              group j2 by u.id into g
              orderby g.Key.datatime descending    // here i'm getting datetime does not contain.
              select new { id = g.key }).tolist(); // here i just want id not getting any other column.
如果有人知道怎么做,请帮忙。

这个怎么样

   var query =db.course.GroupBy(c => c.UserId)
             .Select(g => g.OrderByDescending(c => c.datetime).FirstOrDefault());
        var res = (from u in db.student
              join c in query on u.id equals c.userid into j1
              from j2 in j1.DefaultIfEmpty()     
              select new {   u.name,j2}).ToList();

可以显示学生和课程实体以及要选择的列吗确定我编辑问题并显示实体。我编辑了问题。我想显示所有实体,如名称,带订单的datetime中的std adn课程表by@jitender你知道这个查询吗?请让我知道。我尝试过这个wave,但我得到了课程表中的所有数据,我不想所有数据都按日期排序,只是得到了第一条记录。sry我的问题很清楚。你能帮我吗?这是指只想在课程表中使用datetime order by with获得first或default记录。你能帮我如何使用datetime和你的解决方案,使用上次更新的记录获得first或default记录。@Coder你想从课程中获得具有first或default datetime的学生列表吗表按日期时间排序?是的,我想这样表示学生表中的ex1用户,然后课程表suupose userid 1是3个条目,所以我想最后一个条目使用日期时间获取