Operatori incompatibili nei ControlParameter di LinqDataSource

Può capitare utilizzando i ControlParameter del LinqDataSource che in mancanza dell'elemento sorgente (es: nessun elemento selezionato nella GridView da cui prenedere la chiave) il parser vada in errore, restituendoci qualcosa come:

Linq Operator '==' incompatible with operand types 'Int32' and 'Object'

Il problema si risove facilmente modificando la Where Expression del LinqDataSource forzando un cast dell'oggetto da confrontare nel nostro tipo atteso.

Quindi da così:

 <asp:LinqDataSource .....  Where="nomecampo == @nomeparametro">

A così:

 <asp:LinqDataSource .....  Where="nomecampo == Convert.ToInt32(@nomeparametro)">

Per fortuna abbiamo a disposizione i metodi statici di Convert...

Published sabato 1 dicembre 2007 12.07 by marcodelgatto
Filed under: , ,

Comments

# re: Operatori incompatibili nei ControlParameter di LinqDataSource

mercoledì 13 febbraio 2008 15.50 by Lorenzo
Complimenti!!!

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Powered by Community Server (Commercial Edition), by Telligent Systems