Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq C#:整数dbnull值如何检查?_C#_Linq_Dbnull - Fatal编程技术网

Linq C#:整数dbnull值如何检查?

Linq C#:整数dbnull值如何检查?,c#,linq,dbnull,C#,Linq,Dbnull,我必须将此查询sql转换为linq: SELECT DISTINCT COUNT(tab1.IdUtente) AS NumClientiSenzaAccessi FROM tab1 LEFT OUTER JOIN tab2 ON tab1.IdUtente = tab2.IdAttivazione WHERE (tab1.Demo = 0) AND (tab1.idRivenditore = 0) AND (tab1.IdGruppo <> 29) AND (tab1.IdGr

我必须将此查询sql转换为linq:

SELECT DISTINCT COUNT(tab1.IdUtente) AS NumClientiSenzaAccessi 
FROM tab1 LEFT OUTER JOIN tab2 ON tab1.IdUtente = tab2.IdAttivazione 
WHERE (tab1.Demo = 0) AND (tab1.idRivenditore = 0) AND (tab1.IdGruppo <> 29) AND (tab1.IdGruppo <> 130) AND (tab1.IdGruppo <> 117) AND (tab2.IdAttivazione IS NULL)

但它总是返回0,而不是其他值!!!如何与
c.IdAttivazione
DBNull
值进行比较,其类型是可为null的整数(
int?
)?

如果
IdAttiviazone
是可为null的

&& c.IdAttivaZone == null


取决于linq to SQL查询提供程序的工作情况。

您需要在联接上使用
进入
,然后从中选择并使用
DefaultIfEmpty()
,以便它可以执行左联接,并保留从左到右未联接的所有记录

var numClienti = (from u in contestoDB.tab1 
join c in contestoDB.tab2 on u.IdUtente equals c.IdAttivazione into uc
from ucc in uc.DefaultIfEmpty()
where u.Demo == demo && u.idRivenditore == 0 && u.IdGruppo != 29 && u.IdGruppo != 130 && u.IdGruppo != 117 && (ucc.IdAttivazione.ToString() == null) 
select u.IdUtente 
).Distinct().Count();

(c.IdAttivazione.ToString()==null)=>(ucc.IdAttivazione.ToString()==null)@MikeVinyl的可能重复项对不起,我不明白?你在问我一个问题吗?
&& c.IdAttivaZone.HasValue
var numClienti = (from u in contestoDB.tab1 
join c in contestoDB.tab2 on u.IdUtente equals c.IdAttivazione into uc
from ucc in uc.DefaultIfEmpty()
where u.Demo == demo && u.idRivenditore == 0 && u.IdGruppo != 29 && u.IdGruppo != 130 && u.IdGruppo != 117 && (ucc.IdAttivazione.ToString() == null) 
select u.IdUtente 
).Distinct().Count();