2

我需要填充一个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,那么我该如何继续呢?

4

2 回答 2

6

我认为您想要以下内容:

mask = n.mask ?? string.Empty

这使用null 合并运算符来使用string.Emptyif n.maskis null。

实体框架生成的SQL应该是这样的:

COALESCE(MASK, '')

我的回答假设当您说“如果此查询返回 3 行,并且它们全部为 NULL”时,您mask正在谈论的是存在。null

于 2013-02-04T16:17:00.067 回答
-1

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

.Where(maskModel => !string.IsNullOrEmpty(maskModel));
于 2013-02-04T16:18:43.317 回答