Linq to Entities:如何使用contains处理数据库中的空值

时间:2011-09-20 09:34:57

标签: linq linq-to-entities

我正在使用EF4。

我想使用linq到实体

编写以下语句
select * from address where address.satausId in (1,2,3,4)

数据库中的状态ID可能为空

我试过了

var statusesToFind = new List<int> {1, 2, 3, 4};

var AddressList = from sa in db.Address
                  where statusesToFind.Contains(sa.statusId)
                  select sa;

这给了我一个语法错误

奇怪的是,如果我尝试上面的语句,但使用sa.Id,这是关键字段,它没有问题,我认为问题是由于数据库中的statusId允许空值。

如果有人能告诉我如何正确地写上述内容,我将不胜感激。

由于

1 个答案:

答案 0 :(得分:4)

使statustofind成为可以为空的整数列表,如

var statusesToFind = new List<int?> {1, 2, 3, 4};

var AddressList = from sa in db.Address
                  where statusesToFind.Contains(sa.statusId)
                  select sa;