Biorąc to zapytanie:problem z LINQ podmiotom zapytania używając Sum na obiekt podrzędny nieruchomość
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
}
Jeśli usługa nie ma żadnych zastrzeżeń, to jest wyjątek:
System.InvalidOperationException : Odrzucenie do typu wartości "Int32" nie powiodło się, ponieważ zmaterializowana wartość jest pusta. Typowy parametr typu wynikowego lub zapytanie muszą używać typu zerowego.
Rozumiem, ale jak mam sobie z tym poradzić? Moją intencją jest, jeśli nie ma żadnych zastrzeżeń, a następnie Zatrudnienie być przypisane 0.
Zamieściłem to pytanie przed próbą, że tylko dlatego, że zakłada się, że LINQ do udziałów w jednostkach nie będzie w stanie przekształcić go do SQL lub coś w tym stylu. Wciąż przyzwyczajam się do L2E, który wydaje się dużo bardziej wybredny niż LINQ do SQL, o to, co można faktycznie zrobić w instrukcji LINQ. W każdym razie to działa i nigdy nie należy zakładać. Dzięki. –
@Ronnie cieszę się, że zadziałało. Są zdecydowanie inne i wyobrażam sobie, że L2E stanie się bardziej elastyczny w przyszłości. –
To zadziała, ale jest łatwiejsze rozwiązanie. –