domenica 26 ottobre 2014

VB.Net Linq select Impossibile assegnare il valore null a un membro di tipo System.Int32 con tipo di valore non nullable

Può capitare che durante l'utilizzo di Linq per effettuare una select in una fonte dati il cui campo di tipo Integer, presenta valore null, visualizza il seguente messaggio "Impossibile assegnare il valore null a un membro di tipo System.Int32 con tipo di valore non nullable.".
Questo perchè il campo di tipo integer non supporta valori null.

Per ovviare a questo, durante la selezione dei campi, impostare una condizione If con un valore in caso di minore di 1 fornirà 0 oppure vuoto.


Qui di seguito un esempio in VB.Net

'Valore 0
  Dim risultato = (From Dati In MioOggetto.Metodo()  Select New With {.Campo= Dati.Nome, .Campo2= Dati.Cognome,  .CampoInteger = If(Dati.Eta> 0, Dati.Eta, 0)})


'Valore 1.


Dim risultato = (From Dati In MioOggetto.Metodo() Select New With {.Campo= Dati.Nome, .Campo2= Dati.Cognome, .CampoInteger = If(Dati.Eta> 0, Convert.ToString(Dati.Eta), Convert.ToString(""))})

Nessun commento: