Với truy vấn này:Vấn đề với LINQ to Entities truy vấn sử dụng Sum trên đối tượng con sở hữu
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
}
Nếu dịch vụ không có bất kỳ đặt phòng, ngoại lệ này được ném:
System.InvalidOperationException : Giá trị đúc thành giá trị 'Int32' không thành công do giá trị vật hoá là null. Tham số chung của loại kết quả hoặc truy vấn phải sử dụng một loại nullable.
Tôi hiểu, nhưng làm cách nào để giải quyết? Ý định của tôi là nếu không có đặt phòng, sau đó số lượng nhân viên được chỉ định 0.
tôi đăng câu hỏi này trước khi thử mà chỉ vì tôi cho rằng LINQ to entites sẽ không thể chuyển nó sang SQL hoặc một cái gì đó như thế. Tôi vẫn quen với L2E, có vẻ khó tính hơn LINQ to SQL là về những gì bạn thực sự có thể làm bên trong câu lệnh LINQ. Dù sao, công trình này và người ta không bao giờ nên giả định. Cảm ơn. –
@Ronnie vui vì nó hoạt động. Họ chắc chắn khác nhau và tôi tưởng tượng L2E sẽ chỉ trở nên linh hoạt hơn trong tương lai. –
Thao tác này sẽ hoạt động nhưng có giải pháp dễ dàng hơn. –