Poszukuję rozwiązania problemu polegającego na tym, że metoda rozszerzenia DefaultIfEmpty()
nie zbiera wartości pustych, gdy są używane w łączeniu zewnętrznym LINQ.LINQ Wyjątek NullReferenceException na DefaultIfEmpty
kod w następujący sposób:
var SummaryLossesWithNets = (from g in SummaryLosses
join n in nets
on g.Year equals n.Year into grouping
from x in grouping.DefaultIfEmpty()
select new
{
Year = g.Year,
OEPGR = g.OccuranceLoss,
AEPGR = g.AggregateLoss,
OEPNET = ((x.OEPRecovery == null) ? 0 : x.OEPRecovery),
AEPNET = ((x.AEPRecovery == null) ? 0 : x.AEPRecovery),
});
na liście SummaryLosses istnieje wiele lat warto danych Pragnę przyłączyć się do tabeli „sieci”, które zawiera sub-część lata. Wyjątek jest wywoływany, gdy x jest wartością pustą, zakładam, ponieważ lata w zestawieniach podsumowujących, które nie zostały dopasowane przez lata w sieciach, tworzą wartości puste na liście grupowania.
W jaki sposób powinieneś sprawdzić tutaj wartość zerową? Jak widać, próbowałem sprawdzić zerowość we właściwościach x, ale ponieważ x ma wartość null, to nie działa.
poważaniem Richarda
Wielkie dzięki, nie wiem, dlaczego to nie przyszło mi do głowy. Dzięki –