给定以下查询:
from s in services
select new
{
s.Id,
s.DateTime,
Class = s.Class.Name,
s.Location,
s.Price,
HeadCount = s.Reservations.Sum(r => r.PartySize), // problem here. r.PartySize is int
s.MaxSeats
}
如果服务没有任何预订,将会抛出以下异常:
我明白了,但是我该怎么处理呢?我的意图是如果没有预订,那么HeadCount将被赋值为0。System.InvalidOperationException: 转换为值类型 'Int32' 失败,因为实例化的值为空。结果类型的泛型参数或查询必须使用可空类型。
HeadCount = (int?)s.Reservations.Sum(r => r.PartySize) ?? 0,
- JumpingJezza(int?)
转换,它是可空的。 - Craig Stuntz