空值不能分配

我有以下的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

上一篇: Null value cannot be assigned

下一篇: Update all objects in a collection using LINQ