Linq to sql LINQ2SQL是一个基于参数的返回项问题

Linq to sql LINQ2SQL是一个基于参数的返回项问题,linq-to-sql,Linq To Sql,我遇到了一个奇怪的问题。我有那种方法 public static void ProcessCategories(int? myID) { var tmpList = Adapter.Category.Where(x => x.IdParentCategory == myID).ToList(); } 当myID==null(参数)时,tmpList不包含任何元素,但如果我键入 x.IdParentCategory==null然后返回一些项。为什么?试试这个: public stati

我遇到了一个奇怪的问题。我有那种方法

public static void ProcessCategories(int? myID)
{
  var tmpList = Adapter.Category.Where(x => x.IdParentCategory == myID).ToList();
}
myID==null
(参数)时,tmpList不包含任何元素,但如果我键入

x.IdParentCategory==null
然后返回一些项。为什么?

试试这个:

public static void ProcessCategories(int? myID)
{
  var tmpList = Adapter.Category.Where(x => x.IdParentCategory == myID || (myID == null && x.IdParentCategory == null)).ToList();
}

我认为这是因为在sql中,您必须像这样比较空值:其中列为空。但是,如果代码生成错误“Delegate”System.Func“不接受1个参数”,则非null值为。。我不知道为什么。但这里有一个人也有同样的问题