Teniendo en cuenta esta consulta:Problema con LINQ a Entidades consulta mediante la suma de la propiedad objeto secundario
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
}
Si el servicio no tiene ninguna reserva, esta excepción se produce:
System.InvalidOperationException : El lanzamiento al tipo de valor 'Int32' falló porque el valor materializado es nulo. O el parámetro genérico del tipo de resultado o la consulta debe usar un tipo anulable.
Lo entiendo, pero ¿cómo debo tratarlo? Mi intención es que si no hay reservas, a continuación, la plantilla se le asigna 0.
he publicado esta pregunta antes de tratar de que sólo porque supuse que LINQ a ENTIDADES no sería capaz de convertir a SQL o algo como eso. Todavía me estoy acostumbrando a L2E, que parece mucho más quisquilloso que LINQ to SQL sobre lo que se podría hacer dentro de la declaración LINQ. De todos modos, esto funciona y uno nunca debería suponer. Gracias. –
@Ronnie me alegro de que funcionó. Definitivamente son diferentes e imagino que L2E solo se volverá más flexible en el futuro. –
Esto funcionará, pero hay una solución más fácil. –