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();