linq中默认填充Select = null
Posted
技术标签:
【中文标题】linq中默认填充Select = null【英文标题】:Fill by default Select = null in linq 【发布时间】:2021-09-30 03:20:01 【问题描述】:我有这句话 linq,用两个视图模型在一个选择中选择,问题是 在我的 loginviewmodel 中,并非所有的状态都等于收到,可能有空值,但是当将它们放在我的视图中时,我的网格中的某些列显示为空,如果 logviewmodel = null 但我希望看到默认情况下出现 N/A不知道怎么做,我把它作为JSON返回,因为我在服务器端使用数据表,我不知道是否也可以操作json
我分享我的 linq 句子
var result = db.document.Select(d => new DocumentViewModel
DocumentId = d.DocumentId,
Name = w.name
ReceivedLogs = d.Logs
.Where(l => l.Status == Status.Received)
.Select(l => new LogViewModel
CurrentApprover = l.User,
NameApprover = l.User.FullName
).FirstOrDefault()
).ToList();
谢谢
【问题讨论】:
【参考方案1】:您可以检查 FirstOrDefault() 是否返回 null,然后使用默认的 LogViewModel:
var result = db.document.Select(d => new DocumentViewModel
DocumentId = d.DocumentId,
Name = w.name
ReceivedLogs = d.Logs
.Where(l => l.Status == Status.Received)
.Select(l => new LogViewModel
CurrentApprover = l.User,
NameApprover = l.User.FullName
).FirstOrDefault() ?? new LogViewModel
CurrentApprover = "N/A",
NameApprover = "N/A"
).ToList();
【讨论】:
以上是关于linq中默认填充Select = null的主要内容,如果未能解决你的问题,请参考以下文章