Linq to Sql 左连接 , 取右表可能为 null的 int类型字段
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类型字段的更多相关文章
- sql左连接,右连接,内连接
1.sql查询时什么叫左连接和右连接 左连接和右连接都是外部连接,也就是区别于内部连接,它对不满足连接条件的行并不是象内部连接一样将数据完全过滤掉,而是保留一部分数据,行数不会减少. 左或 ...
- SQL左连接、右连接和内连接的简单示例
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录: right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: inner join(等值连接 ...
- laravel利用subquery使左连接查询右表数据唯一查询
如:表a,连接表b,b中有多条符合查询的记录 1.建立需要的子查询 $sub = DB::table('b')->select(['aid'])->selectRaw('max(id) a ...
- SQL: 左连接,右连接,内连接,左外连接,右外连接,完全连接
例子: ---------------------- --------------------------- a表 id name b表 id job parent_id 1 张三 ...
- sql 左连接与右连接
假设有A,B两个表. 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID ...
- sql左连接查询+右表带有条件的实现
select * from A表 a left join B表 b on a.id=b.a_id and b.字段='/*条件*/' ; 可查出左表所有数据 select * from A表 a le ...
- Linq to Sql 左连接查询
var query = from t0 in context.ExpressSendMaster join t1 in context.Supplier on t0.SupplierCode equa ...
- Linq 和 SQL的左连接、右连接、内链接
在我们工作中表连接是很常用的,但常用的有这三种连接方式:左连接.右连接.内链接 在本章节中讲的是1.如何在Linq中使用左连接,右连接,内连接. 2.三种连接之间的特点在哪? 3.Linq的三种连接语 ...
- SQL 中左连接与右链接的区别
在微信公众号中看到的sql左连接与右链接的总结,这个图总结的很好,所以单独收藏下:
随机推荐
- uversion5 怎么添加设备
实时 点击网址去它的官网下载,然后选择自己的设备组,Dfg ,下载下来的是一个安装包,直接安装即可
- Mybatis学习笔记(六) —— 动态sql
通过mybatis提供的各种标签方法实现动态拼接sql. 需求:根据性别和名字查询用户 查询sql: SELECT id, username, birthday, sex, address FROM ...
- Django 10 GET和POST(HttpRequest对象,GET和POST请求,文件上传,HttpResponse对象的cookie)
Django 10 GET和POST(HttpRequest对象,GET和POST请求,文件上传,HttpResponse对象的cookie) 一.HttpRequest对象 #HttpRequest ...
- 【CodeForces - 1034B】Little C Loves 3 II
@中文题意@ n*m的矩阵,当两个点(x1, y1)与(x2, y2)曼哈顿距离为3时可以将两个点匹配.每个点只能够与一个点匹配.求最多能可以匹配多少个点.n,m <= 10^9 (xi,yi) ...
- Linux系统调用接口添加简单示例
1. Linux体系结构 Linux系统的地址空间分为用户空间和内核空间,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移. 2. 系统调用接口 ① 一般情况下,用户进程不能访问内核空间.Li ...
- php composer php amqplib
下载composer.phar放到项目根目录 d:/www/apps https://getcomposer.org/download/1.4.1/composer.phar 下载安装Composer ...
- leetcode 892. 三维形体的表面积
题目描述: 在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 返回最终形体的表面积. ...
- Fortran和C的编译器PGI部署
平台信息 Description: CentOS Linux release 7.6.1810 (Core) 安装步骤 获取PGCC:社区版是免费的,自带license.dat 解压下载的压缩包:ta ...
- goodBye wordPress
2016-07-28,我自己在GoDaddy上面注册了一个自己的域名,www.codetree.tech,同时在老薛主机上面购买了一个主机域名.我搭建了一个属于自己的博客,开心了很久.最近收到了域名续 ...
- javasript数据类型以及如何判断数据类型
在javascript里面一共有5种基本的数据类型,分别是:Number,String,Boolean,Null,Undefined7种引用类型,分别是:Object类型,Array类型,Date类型 ...