Nel caso che stiamo utilizzando il metodo ExecuteStoreQuery in Entity Framework per estrapolare da una query dei record, può capitare che da una select il dato di tipo intero convertito in testo generi l'eccezione
"The specified cast from a materialized 'System.Double' type to the 'System.String' type is not valid."
Qui di seguito l'istruzione che potrebbe causare l'errore, se il campo è numerico.
var res = objectContext.ExecuteStoreQuery<string>("select distinct ColonnaInteger from " + tabella + " where ColonnaInteger like '%" + filter.Replace("'", "''") + "%'");
Per evitare questa eccezione, dobbiamo utilizzare l'istruzione convert che converte il tipo intero in testo, in modo che poi nel metodo "ExecuteStoreQuery" non viene generato nessun errore.
Qui di seguito il frammento di codice per evitare l'eccezione.
var res = objectContext.ExecuteStoreQuery<string>("select distinct CONVERT(varchar(10), ColonnaInteger) from " + tabella + " where ColonnaInteger like '%" + filter.Replace("'", "''") + "%'");
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento