linq中默认填写Select = null
Fill by default Select = null in linq
我有这句话 linq,select 在 select 中使用两个视图模型,问题是
在我的 loginviewmodel 中,并非所有状态都等于 received,可能有空值,但是当将它们放在我的视图中时,我的网格中的某些列显示为空,如果 logviewmodel = null,我希望默认显示 N/A但我不知道该怎么做,我 return this as 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();
谢谢
您可以检查 FirstOrDefault() returns 是否为空,然后使用默认的 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 在 select 中使用两个视图模型,问题是 在我的 loginviewmodel 中,并非所有状态都等于 received,可能有空值,但是当将它们放在我的视图中时,我的网格中的某些列显示为空,如果 logviewmodel = null,我希望默认显示 N/A但我不知道该怎么做,我 return this as 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();
谢谢
您可以检查 FirstOrDefault() returns 是否为空,然后使用默认的 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();