Linq 三表 left join 的实现

Posted sjwudhwhhw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linq 三表 left join 的实现相关的知识,希望对你有一定的参考价值。

分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

目的实现:select id,name,jname,cname from userinfo u left join job j on u.job=j.jid left join city c on u.city=c.cid  多表left join

                        var list = (from u in dc.userinfos
                        join j in dc.jobs on u.job equals j.jid into j_join
                        from x in j_join.DefaultIfEmpty()
                        join c in dc.cities on u.city equals c.cid into c_join
                        from v in c_join.DefaultIfEmpty()
                        select new
                        {
                            id=u.id,
                            name=u.name,
                            jname=x.jname,
                            cname=v.cname,
                           /*u1=u,x1=x,v1=v*///不要用对象的方式 因为对象可能为null那么对象.属性就会抛异常
                        }).ToList();

            for (var i = 0; i < list.Count(); i++)
            {
                Console.WriteLine(list[i].name+‘ ‘+list[i].jname+‘ ‘+list[i].cname); //字段为null不跑异常
                //Console.WriteLine(list[i].u1.name+‘ ‘+list[i].x1.jname+‘ ‘+list[i].v1.cname+" "); //对象x1 v1 有可能为null 抛异常
            }
                Console.ReadLine();

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

以上是关于Linq 三表 left join 的实现的主要内容,如果未能解决你的问题,请参考以下文章

left join 如何三表查询

MySql的join(连接)查询 (三表 left join 写法)

LINQ的左连接右连接内连接和Lamda表达式实现Left join

linq left join ,inner join ,crossjoin

如何使用 Entity Framework Core 2.0 上的 lambda 语法在 LINQ 中实现 LEFT OUTER JOIN?

c# Linq left join 多个条件连接查询