lunedì 17 dicembre 2012

linq to Entities non riconosce il metodo 'System.String ToString', che pertanto non può essere convertito in un'espressione di archivio

Nello scrivere query in Linq to Entity possiamo trovare riscontrare il seguente messaggio di errore "Linq to non riconosce il metodo 'System.String ToString', che pertanto non può essere convertito in un'espressione di archivio." o meglio "LINQ No overload for method 'ToString' takes 1 arguments", questo è dovuto al fatto che un campo data è nullable, ossia può essere nullo.
Per risolvere tale problemi, rendere la query di tipo List, ed assegnare un alias al campo.
L'esempio qui di seguito, illustra la query che risolve la problematica.



var risultato = from n in Tabella.ToList()

select new

{

RECORD = n.RECORD,

Data = (n.Data.HasValue == false ? null : n.Data.Value.ToString("dd/MM/yyyy"))

};

3 commenti:

Anonimo ha detto...

... per la serie, memoria da elefante, ci sono passato 2 volte! grazie!

Emanuele ha detto...

La programmazine è bella anche per questo. :-)
Grazie per aver lasciato il commento.

Anonimo ha detto...

Ciao Emanuele,
mi hai svoltato il lavoro.
Grazie infinite.
E bella pé té.