设置列表<;T>;如果返回的行为NULL,则项为空

本文关键字:NULL 返回 lt 列表 gt 设置 如果 | 更新日期: 2023-09-27 17:57:39

我需要填充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个空字符串。我有什么办法做到这一点吗?

我知道对于SqlServer来说,NULL是一个没有值的值。即使NULL==NULL也返回false,那么我该如何继续呢?

设置列表<;T>;如果返回的行为NULL,则项为空

我认为您想要以下内容:

mask = n.mask ?? string.Empty

如果n.mask为null,则使用null合并运算符来使用string.Empty

实体框架生成的SQL应该类似于以下内容:

COALESCE(MASK, '')

我的回答假设您说"如果这个查询返回3行,并且所有行都为NULL"时,mask就是null

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

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