检查Char DB列的LINQ where子句中的Null值

时间:2017-07-28 14:35:51

标签: c# .net linq

我有一个关于从DB获取结果的一般性问题,其中特定列为null

示例:

"Student"

no        int           //1,2,3 etc..
name      varchar(50)   //xxx, yyy etc...
isMinor   char(36)      //'Y' OR 'N' OR NULL

现在当我必须得到isMinor为空的行时,我们必须使用以下查询

SELECT* FROM Student WHERE isMinor IS NULL

我需要LINQ中的等效查询。我尝试了DBNull.Value并与null尝试String.Empty进行了比较,但没有任何效果。

var result = from s in db.Student where s.isMinor == null Select s

结果:返回0条记录,即使数据库中有一些记录null列中的值isMinor

var result = from s in db.Student where s.isMinor == DBNull.Value Select s

结果:

  

错误:“意外类型代码:dbnull”

var result = from s in db.Student where (Object)s.isMinor == DBNull.Value Select s

结果:

  

错误:“意外类型代码:dbnull”

var result = from s in db.Student where String.isNullOREmpty(s.isMinor) Select s

结果:返回0条记录,即使数据库中有一些记录null列中的值isMinor

此查询构造中是否缺少任何内容?

0 个答案:

没有答案