查询中的实体框架null值

wil*_*lvv 5 .net null entity-framework

我在EF查询中看到一个奇怪的行为,我想知道它为什么会发生.使用以下代码我没有得到任何结果:

if (category.Parent == null)
{
    return Db.EventCategories.Where(c => c.Parent == category.Parent);
}
Run Code Online (Sandbox Code Playgroud)

但是使用此代码它确实返回了预期的结果:

if (category.Parent == null)
{
    return Db.EventCategories.Where(c => c.Parent == null);
}
Run Code Online (Sandbox Code Playgroud)

有什么不同?不是null总是null吗?或者,当值为可空时,EF会将它们视为不同的元素(Parent的类型为int?).

a1e*_*x07 2

我不是 100% 确定,但我认为第一个语句会生成类似的内容SELECT ... FROM category, eventcategories WHERE category.parent = eventcategories.parent(如果category.parent 为 null,则返回空记录集),而第二个... WHERE eventcategories.parent IS NULL.