Ci sono alcune domande su Stack Overflow sul metodo di estensione Linq to Entity / Linq to SQL Sum, su come restituisce null quando il set di risultati è vuoto: 1 , 2 , 3 , 4 , 5 , 6 , 7 , e molti altri, nonché un post sul blog che discute il problema qui . Ritengo che sia un'incoerenza nell'implementazione di Linq.
Sto assumendo a questo punto che non è un bug, ma è più o meno funzionante come progettato. Capisco che ci sono soluzioni alternative (ad esempio, lanciare il campo a un tipo nullable, in modo da poter fondere con ??
), e capisco anche che per l'SQL sottostante, è previsto un risultato NULL per un set di risultati vuoto.
Ma poiché anche il risultato dell'estensione Sum per i tipi non annullabili non è annullabile, perché il Linq su SQL / Linq su Somma entità si comporta in questo modo?