LINQ To SQL ed un problema di null

di , in LINQ,

L'altro giorno mi stavo dilettando scrivendo una query LINQ per estrarre il prossimo numero di fattura per l'anno in corso. La query è tutto sommato semplice:

(from c in MyDataContext.Invoice
where c.IssueDate.Year == DateTime.Now.Year
select c.Number).Max()

Ora il problema scatta per la prima fattura dell'anno. Infatti, il risultato della query da db è null poichè non esiste ancora una fattura per l'anno in corso. La conseguenza è che LINQ cerca di mettere null in un int (poichè il campo Number è int) ed il tutto scoppia. La soluzione è semplice, basta castare il campo Number a nullable ed usare GetValueOrDefault per avere il valore di default che desideriamo in caso di null.

(from c in MyDataContext.Invoice
where c.IssueDate.Year == DateTime.Now.Year
select (int?)c.Number).Max().GetValueOrDefault(1)

Stay tuned...

Commenti

Visualizza/aggiungi commenti

LINQ To SQL ed un problema di null
| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese