码迷,mamicode.com
首页 > 数据库 > 详细

Linq to Sql 左连接 , 取右表可能为 null的 int类型字段

时间:2018-05-24 18:10:31      阅读:1120      评论:0      收藏:0      [点我收藏+]

标签:主表   遇到   str   没有   col   efault   first   左连接   div   

 

linq to sql , linq to entity 遇到一个问题, 主表, 从表 一对一 关系,  主表有记录, 从表 可能没有记录. 

现在要查询 主表+从表 的某几个字段.

从表字段 有的是 Tzsbh  int? 类型.    int 转 string  如果对象为null,报错

                var queryLeft = from c in db.AA
                                join sr in
                                    (
                                     from ss in db.BB
                                     select ss
                                     )
                                   on c.Id equals sr.Sid
                                   into x
                                from y in x.DefaultIfEmpty()
                                select new { c.Id, c.timeflag, Tzsbh = y.Tzsbh };

                 result = from c in queryLeft.AsEnumerable()
                             select new ShowInfo
                             {
                                 Sid = c.Id,
                                
                                 timeflag = c.timeflag,
                                 PdfId = c.Tzsbh.ToString()  //int 转 string 这一行, 如果对象为null,报错
                             };

 尝试如下方案, 左连接, 1 对多, 取右边表 FirstOrDefault, 然后判断 null, 再进行取值

 

 var sg = db.AA.GroupJoin(db.BB, c => c.Id, d => d.Sid, (c, d) => new { c.Id, c.timeflag, Pdf = d.FirstOrDefault() }).Select(o => o);

 var result = from c in sg.AsEnumerable()
                             select new ShowInfo
                             {
                                 Sid = c.Id,
                                 timeflag = c.timeflag,
                                 PdfId = c.Pdf == null ? "" : c.Pdf.Tzsbh.ToString()
                             };

 

Linq to Sql 左连接 , 取右表可能为 null的 int类型字段

标签:主表   遇到   str   没有   col   efault   first   左连接   div   

原文地址:https://www.cnblogs.com/mjxxsc/p/9083677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!