Widziałem różne warianty tego pytania w każdym miejscu, ale żadna z odpowiedzi nie działa dla mnie. Większość z nich są po prostu staramy się podsumować pojedynczą kolumnę też - nic bardziej złożone, takie jak suma produktu, jak poniżej:EF Linq Suma produktu, gdy nie powróciły żadne dokumenty
public double Total
{
get
{
return _Context.Sales.Where(t => t.Quantity > 0)
.DefaultIfEmpty()
.Sum(t => t.Quantity * t.Price);
}
}
Jeśli nie wiersze są zwracane chcę wrócić do zera. Jednak jeśli nie zostaną zwrócone żadne wiersze, funkcja .Sum() nie powiedzie się. Istnieją różne opcje próbowania wstawienia Convert.ToDouble i używania operatorów z zerowym koalescencją, ale wszystkie nadal dawały mi błędy.
Jestem pewien, że brakuje mi prostego sposobu, aby to zrobić - jakiejkolwiek pomocy cenionej po zbyt długim uderzeniu głową o ścianę google!
Thanks @lazyberezovsky. Próbowałem tego - otrzymuję błąd kompilatora: Operator "??" nie można zastosować do operandów typu "double" i "int". Ale to jest dokładnie to, co próbuję osiągnąć ... – user1622713
@ user1622713 Myślę, że casting do typu nullable pomoże ci –
@lazyberezovsky nie zwraca 'Suma' zero zero' null' jeśli sekwencja jest pusta? –