1 messaggio dal 14 maggio 2008
Sono appena passato alla nuova tecnologia LINQ, e sto cercando di adattarvi i miei web services (che rappresentano il back-end della mia applicazione).
Da neofita mi sto accorgendo che una volta eseguita una query LINQ dentro un web method classico (non WCF s'intende) l'oggetto "var" che mi restituisce il risultato della query, e che costituisce il dato di ritorno del metodo web, non è serializzabile nè posso farne un upcast verso un qualche altro tipo che consenta la serializzazione. In pratica se prima i miei web metodi restituivano dei dataset come risultato delle interrogazioni db tramite i classici command ADO.NET, ora con LINQ il risultato della query è incapsulato in un oggetto "var" non tipizzato e non serializzabile. Come ne posso uscire???
Grazie
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
eraser66 ha scritto:
Sono appena passato alla nuova tecnologia LINQ, e sto cercando di adattarvi i miei web services (che rappresentano il back-end della mia applicazione).
Da neofita mi sto accorgendo che una volta eseguita una query LINQ dentro un web method classico (non WCF s'intende) l'oggetto "var" che mi restituisce il risultato della query, e che costituisce il dato di ritorno del metodo web, non è serializzabile nè posso farne un upcast verso un qualche altro tipo che consenta la serializzazione.

Quello che potresti fare è applicare una logica "manuale" di conversione dall'Anonymous Type al tuo dato di ritorno (*) oppure implementare un Domain model e fare in modo che i risultati della "query" link siano oggetti veri e propri e quindi serializzabili.

In pratica se prima i miei web metodi restituivano dei dataset come risultato delle interrogazioni db tramite i classici command ADO.NET, ora con LINQ il risultato della query è incapsulato in un oggetto "var" non tipizzato e non serializzabile. Come ne posso uscire???
Grazie


(*) Ma veramente i tuoi web service restituiscono DataSet? Sicuramente avrai i tuoi motivi ma non è il massimo della "snellezza".

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
176 messaggi dal 04 giugno 2007
Contributi | Blog
Il dato var e' una shortcut per un IQueryable<T> dove T e' il tipo della select.
Basta non usare un tipo anonimo e sei a posto.

Saluti

--Alessandro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.