通过linq lambda表达式c#左连接组?

时间:2017-03-31 12:52:37

标签: c# linq

我想使用linq lambda表达式编写左连接。我已尝试使用join进行查询,但现在我想使用左连接创建,所以任何人都可以帮助我如何做。

这是我的问题:

var UserList = db.UserInfo
                .Join(db.Course, u => u.id, c => c.userid, (u, c) =>
                new { u, c }).GroupBy(r => r.u.id)
                .Select(g => g.OrderByDescending(r => r.c.datetime)
                .FirstOrDefault()).OrderByDescending(a => a.u.datetime).ToList();

使用此查询,我不希望那些不在课程表中的用户数据,所以我也想在用户ID中的课程表中使用这些数据。

1 个答案:

答案 0 :(得分:0)

你可以使用

var qry = Foo.GroupJoin(
      Bar, 
      foo => foo.Foo_Id,
      bar => bar.Foo_Id,
      (x,y) => new { Foo = x, Bars = y })
.SelectMany(
      x => x.Bars.DefaultIfEmpty(),
      (x,y) => new { Foo=x.Foo, Bar=y});

参考:How do you perform a left outer join using linq extension methods