我有一个 linq 查询功能,如(简化):
public IList<Document> ListDocuments(int? parentID)
{
return (
from doc in dbContext.Documents
where doc.ParentID == parentID
select new Document
{
ID = doc.ID,
ParentID = doc.ParentID,
Name = doc.SomeOtherVar
}).ToList();
}
现在由于某种原因,当我为 parentID 传入 null 时(当前只有具有 null parentID 的数据)并且我没有得到任何结果。
我将此查询复制并粘贴到 LinqPad 中并运行以下命令:
from doc in dbContext.Documents
where doc.ParentID == null
select doc
我按预期返回结果集...
实际查询已离开联接和其他联接,但我已将它们删除并对其进行测试并获得相同的结果,因此联接不会影响任何事情。该应用程序和 LinqPad 也都连接到同一个数据库。
编辑:在应用程序查询中仅使用“null”进行测试,它按预期返回结果,因此问题是使用 null vs int?。我已经更新了问题,以使其对有相同问题的其他人更有用,以找到该线程。