我需要填充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,那么我该如何处理呢?
答案 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));