C# 通过与Linq的左连接显示空结果
我有一个SQL查询:C# 通过与Linq的左连接显示空结果,c#,linq,left-join,isnull,C#,Linq,Left Join,Isnull,我有一个SQL查询: 选择A.Codplano、A.Secao、A.Setor、A.subtor、A.Contato、ISNULL(B.Subord,'NÃO 兰加达作为司徒阿操 从vwPLANODIN A左连接LANCADA B 在A.Codplano=B.Subord上 B.数据='2014-06-10' 其中B.ID为NULL,A.Sitio=7341 用Linq写的: var cob=来自dataClass.vwPLANODINs中的 在新的{A.Codplano,Data=Data}
选择A.Codplano、A.Secao、A.Setor、A.subtor、A.Contato、ISNULL(B.Subord,'NÃO
兰加达作为司徒阿操
从vwPLANODIN A左连接LANCADA B
在A.Codplano=B.Subord上
B.数据='2014-06-10'
其中B.ID为NULL,A.Sitio=7341
用Linq写的:
var cob=来自dataClass.vwPLANODINs中的
在新的{A.Codplano,Data=Data}上的dataClass.LANCADAs中加入B
等于new{Codplano=B.Subord,Data=Convert.ToString(B.Data)}到B_join
来自B_join.DefaultIfEmpty()中的B
哪里
B.数据==null&&
A.Sitio==本地
选择新的
{
A.Codplano,
A.塞考,
A.塞托,
A.子项,
A.康塔托,
Situacao=(B.子命令?“不适用”)
};
我必须在Gridview中显示未记录的数据,SQL查询返回我需要的数据,但Linq查询返回的结果正好相反。我不会为此使用
外部联接,但解析为的查询不存在。
:
var cob = from A in dataClass.vwPLANODINs
where !(from B in dataClass.LANCADAs
where B.Subord == A.Codplano && B.Data == data
select B)
.Any()
&& A.Sitio == local
select new
{
A.Codplano,
A.Secao,
A.Setor,
A.Subsetor,
A.Contato,
Situacao = (B.Subord ?? "N/A")
};