LINQ To SQL ed un problema di null
di Stefano Mostarda, in LINQ, domenica 16 dicembre 2007 ore 23.09
Archiviato in: .NET Framework 3.5, 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...
Nella stessa categoria
I più letti del mese



















Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.