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类型字段的更多相关文章

  1. sql左连接,右连接,内连接

    1.sql查询时什么叫左连接和右连接    左连接和右连接都是外部连接,也就是区别于内部连接,它对不满足连接条件的行并不是象内部连接一样将数据完全过滤掉,而是保留一部分数据,行数不会减少.    左或 ...

  2. SQL左连接、右连接和内连接的简单示例

    left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录: right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: inner join(等值连接 ...

  3. laravel利用subquery使左连接查询右表数据唯一查询

    如:表a,连接表b,b中有多条符合查询的记录 1.建立需要的子查询 $sub = DB::table('b')->select(['aid'])->selectRaw('max(id) a ...

  4. SQL: 左连接,右连接,内连接,左外连接,右外连接,完全连接

    例子: ---------------------- --------------------------- a表 id name b表 id job parent_id 1 张三           ...

  5. sql 左连接与右连接

    假设有A,B两个表. 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID ...

  6. sql左连接查询+右表带有条件的实现

    select * from A表 a left join B表 b on a.id=b.a_id and b.字段='/*条件*/' ; 可查出左表所有数据 select * from A表 a le ...

  7. Linq to Sql 左连接查询

    var query = from t0 in context.ExpressSendMaster join t1 in context.Supplier on t0.SupplierCode equa ...

  8. Linq 和 SQL的左连接、右连接、内链接

    在我们工作中表连接是很常用的,但常用的有这三种连接方式:左连接.右连接.内链接 在本章节中讲的是1.如何在Linq中使用左连接,右连接,内连接. 2.三种连接之间的特点在哪? 3.Linq的三种连接语 ...

  9. SQL 中左连接与右链接的区别

    在微信公众号中看到的sql左连接与右链接的总结,这个图总结的很好,所以单独收藏下:

随机推荐

  1. uversion5 怎么添加设备

    实时 点击网址去它的官网下载,然后选择自己的设备组,Dfg ,下载下来的是一个安装包,直接安装即可

  2. Mybatis学习笔记(六) —— 动态sql

    通过mybatis提供的各种标签方法实现动态拼接sql. 需求:根据性别和名字查询用户 查询sql: SELECT id, username, birthday, sex, address FROM ...

  3. Django 10 GET和POST(HttpRequest对象,GET和POST请求,文件上传,HttpResponse对象的cookie)

    Django 10 GET和POST(HttpRequest对象,GET和POST请求,文件上传,HttpResponse对象的cookie) 一.HttpRequest对象 #HttpRequest ...

  4. 【CodeForces - 1034B】Little C Loves 3 II

    @中文题意@ n*m的矩阵,当两个点(x1, y1)与(x2, y2)曼哈顿距离为3时可以将两个点匹配.每个点只能够与一个点匹配.求最多能可以匹配多少个点.n,m <= 10^9 (xi,yi) ...

  5. Linux系统调用接口添加简单示例

    1. Linux体系结构 Linux系统的地址空间分为用户空间和内核空间,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移. 2. 系统调用接口 ① 一般情况下,用户进程不能访问内核空间.Li ...

  6. php composer php amqplib

    下载composer.phar放到项目根目录 d:/www/apps https://getcomposer.org/download/1.4.1/composer.phar 下载安装Composer ...

  7. leetcode 892. 三维形体的表面积

    题目描述: 在 N * N 的网格上,我们放置一些 1 * 1 * 1  的立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 返回最终形体的表面积. ...

  8. Fortran和C的编译器PGI部署

    平台信息 Description: CentOS Linux release 7.6.1810 (Core) 安装步骤 获取PGCC:社区版是免费的,自带license.dat 解压下载的压缩包:ta ...

  9. goodBye wordPress

    2016-07-28,我自己在GoDaddy上面注册了一个自己的域名,www.codetree.tech,同时在老薛主机上面购买了一个主机域名.我搭建了一个属于自己的博客,开心了很久.最近收到了域名续 ...

  10. javasript数据类型以及如何判断数据类型

    在javascript里面一共有5种基本的数据类型,分别是:Number,String,Boolean,Null,Undefined7种引用类型,分别是:Object类型,Array类型,Date类型 ...