我有以下的linq查询(非常简单):
我得到了6个记录。奇怪的是,如果我在linq代码中用"null"替换"folder.FolderID",它确实会返回6条记录。显然,在一个空值对象和"null"之间有区别。我不知道这是什么区别以及如何修复它。
顺便提一下,我的代码中where子句是这样的:
var jobs = from j in db.jobmsts
join jd in db.jobdtls on j.jobdtl_id equals jd.jobdtl_id
where j.jobmst_type != 1 && j.jobmst_prntid.Equals(folder.FolderID)
orderby j.jobmst_name
select new
{
JobID = j.jobmst_id,
JobName = j.jobmst_name,
Description = j.jobmst_desc,
Source = jd.Source
};
folder.FolderID是可空整型(int?),作为参数传递给方法。所以,当它为null时,查询不返回任何结果。但如果我在TSQL中执行相同的查询:
select * from jobmst j
join jobdtl jd on j.jobdtl_id = jd.jobdtl_id
where j.jobmst_type != 1 and j.jobmst_prntid is null
我得到了6个记录。奇怪的是,如果我在linq代码中用"null"替换"folder.FolderID",它确实会返回6条记录。显然,在一个空值对象和"null"之间有区别。我不知道这是什么区别以及如何修复它。
顺便提一下,我的代码中where子句是这样的:
where j.jobmst_type != 1 && j.jobmst_prntid == folder.FolderID
但是它也没有产生任何结果。
任何帮助都将不胜感激。