2

我使用此代码

var items2 = from item in context.Images
             where item.Reported != true
             select item;

但为什么在“报告”列中不返回空值?

4

3 回答 3

8

trueorfalse与 的值不同null。如果您需要同时返回两者,那么您需要将查询更改为:

var items2 = from item in context.Images
             where item.Reported != true || item.Reported == null
             select item;
于 2013-05-15T18:35:59.030 回答
7

实体框架在将您的查询转换为 SQL 时,会生成类似于

select * from images
where reported <> true

SQL 中用于 null 值的任何运算符都会返回 false(null <> true也),这就是为什么您不会在结果集中获得具有报告的 null 值的图像的原因。

于 2013-05-15T18:40:32.113 回答
1

您可以尝试使用Object.Equals您期望的效果,如下所示:

var items2 = from item in context.Images
    where !Equals(item.Reported, true)
    select item;

它应该像您描述的那样工作,返回falseand 和null条目。

于 2013-05-15T18:38:02.790 回答