使用實體框架,我試圖選擇記錄及其相關的子記錄。孩子的記錄可能是空的,所以我只想返回一個空字符串,如果他們是。試圖運行下面的代碼時,我得到一個包含空子實體的Linq查詢
空引用異常
。
var query = ctx.UserAlerts.Include(x=>x.DocumentType).Where(x => x.UserId == userId).ToList();
var alerts = query.Select(u => new AlertConfigVM
{
UserId = u.UserId,
Destination = u.AlertDestination,
TypeofAlert = u.TypeofAlert,
HourInterval = u.IntervalAsHours,
DocumentTypeName= u.DocumentType.Name??string.Empty
}).ToList();
這裏有我的實體
public class UserAlert
{
public int Id { get; set; }
public string UserId { get; set; }
public User User { get; set; }
public int TypeofAlert { get; set; }
public string AlertDestination { get; set; }
public int? DocumentTypeId { get; set; }
public virtual DocumentType DocumentType { get; set; }
public int? IntervalAsHours { get; set; }
}
public class DocumentType
{
public int Id { get; set; }
public string Name { get; set; }
public string Key { get; set; }
}
,這裏是我的返回類型。
public class AlertConfigVM
{
public int Id { get; set; }
public string UserId { get; set; }
public User User { get; set; }
public int TypeofAlert { get; set; }
public string Destination { get; set; }
public int? DocumentTypeId { get; set; }
public string DocumentTypeName { get; set; }
public int? HourInterval { get; set; }
}
在檢查documenttype.name是否爲空之前,確保documentType不爲空。 – Forklift
我該怎麼做?你能舉一個例子嗎? –
可能重複[什麼是NullReferenceException,以及如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it ) –