空值不能分配
我有以下的LINQ查询:
DataClassesDataContext dc = new DataClassesDataContext();
var query = from contact in dc.Contacts
select new
{
ContactId = contact.ContactId,
LastName = contact.LastName,
FirstName = contact.FirstName,
Addresses = contact.Addresses,
Phones = contact.Phones,
DOB = contact.BirthDate,
LastNote = contact.Notes.Max(n => n.Created), //this line causes the error
Status = contact.ContactStatus.ContactStatusName,
EmailAddress = contact.Emails
};
我获得笔记集合的最大创建日期的行会导致引发以下异常:
例外:无法将null值分配给类型为System.DateTime的成员,该成员属于非空值类型。
如何编写查询以允许空值进入LastNote字段? DOB字段被定义为DateTime? 并没有处理空值的问题。
想想我明白了。
如果我将最大音符值转换为可以为空的DateTime,似乎可以消除异常。 以下更改适用于我:
LastNote = (Nullable<DateTime>)contact.Notes.Max(n => n.Created)
正如其他人指出的那样,它也可以使用可空的DateTime的简写符号来编写,如下所示:
LastNote = (DateTime?) contact.Notes.Max(n => n.Created)
将该行重写为:
LastNote = (DateTime?) contact.Notes.Max(n => n.Created),
LastNote = contact.Notes.Max(n => (DateTime?)n.Created)
无法在网上找到这个,所以我希望这可以帮助其他人。
链接地址: http://www.djcxy.com/p/51351.html