由linq lambda表达式c#左加入组?
问题描述:
我想用linq lambda表达式编写左连接。我试过使用连接查询,但现在我想创建使用左连接,所以任何人都可以帮助我怎么做。由linq lambda表达式c#左加入组?
这里,这是我的查询:
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或不。
答
可以使用
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
您还没有指定什么是错的查询 –
我想用户信息数据当然rieght现在返回coruse表用户ID avaible或不表用户ID不是那么userinfo这个用户没有得到所以我想这个用户也 – coderwill
你可以找到你的解决方案在这里http://stackoverflow.com/questions/21537469/how-to-make-left-join-in-lambda -linq-expressions – user2960398