如果返回的行为NULL </t>,则将List <t>项设置为空

时间:2013-02-04 16:15:04

标签: c# sql-server entity-framework

我需要填充List<string>,但当我的查询返回空值时,此列表中不会创建空字符串。

var maskObj = (from m in context.sistema_DocType_Index
               join n in context.sistema_Indexes on m.indexId equals n.id
               where m.id == docTypeId
               select new maskModel
               {
                    mask = n.mask
               }).ToList();


return Content(""+maskObj.Count());

如果此查询返回3行,并且所有行都是NULL,则列表中需要3个空字符串。 有什么方法可以实现这个目标吗?

据我所知,对于Sql Server,NULL是缺少值。即使NULL == NULL也会返回false,那么我该如何处理呢?

2 个答案:

答案 0 :(得分:6)

我认为您需要以下内容:

mask = n.mask ?? string.Empty

如果string.Empty为空,则null-coalescing operator使用n.mask

实体框架生成的SQL应该类似于:

COALESCE(MASK, '')

我的回答是假设您在说“如果此查询返回3行,并且所有行都为NULL”时,您正在讨论mask null

答案 1 :(得分:-1)

在查询中添加另一个where子句。

.Where(maskModel => !string.IsNullOrEmpty(maskModel));