2 messaggi dal 12 gennaio 2011
Buongiorno a tutti,
mi chiamo Stefano, sono uno studente di Ingegneria Informatica e sto lavorando ad un progetto di cloud computing su windows azure come tesi.
Al momento lavoro, naturalmente, in locale su Visual Studio 2010 Ultimate edition. Il mio obiettivo è creare un semplice sito di e-commerce, ma implementato sulla piattaforma azure, con relativa gestione della persistenza su table.
Il mio problema nasce nel momento di accedere ai dati sulle table di Azure. Infatti, seguendo la documentazione di Microsoft e di altri articoli sparsi, si può dedurre che si può utilizzare il linguaggio Linq per accedere alle table ed effettuare query specifiche.
Il tutto, naturalmente, dopo aver creato le classi necessarie, derivanti da TableServiceEntity e TableServiceContext, e dopo aver inizializzato opportunamente lo storage ed il progetto cloud.
Ora supponiamo di avere una table Messaggi con 2 attributi Chiave e valore entrambi string. Dovrebbe essere possibile eseguire la seguente query:
"var chiavi = from messaggio in context.Messaggi
select messaggio.Chiave;"
oppure ad esempio:
"var messaggi2 =
context.Messaggi.Single(mess => mess.Chiave == "alfa");"
context supponiamo sia una variabile di tipo MessaggioDataServiceContext, derivante da TableServiceContext e che espone un metodo public IQueryable<Messaggio> Messaggi, grazie al quale possiamo effettuare la query sulla tabella Messaggi dello storage locale di azure (per definizione, in quanto TableServiceContext è definita nel SDK di Windows Azure e deriva a sua volta da DataServiceContext). Messaggio deriva da TableServiceEntity, in modo da semplificare molti dettagli come ad esempio RowKey, PartitionKey e messaggi http verso le table (come suggerito dalla stessa Microsoft).
Il punto è che effettuando una tale query, o la query non viene eseguita, oppure vengono sollevate delle eccezioni.
Premetto che ho seguito tutti i tutorials della Microsoft e cercato in moltissimi forum in tutto il mondo.
Qualcuno ha avuto problemi simili?? So che è un problema molto specifico ed è ancora una tecnologia in fase di lavorazione ma non riesco a venire a capo di questo problema ormai da un mese.
L'unico modo per fare il retrieve dalle table è attraverso un DataBind, ma ovviamente ci permette di fare un retrieveAll, senza possibilità di effettuare un retrieve mirato, il che la maggior parte delle volte è inutile.
Qualcuno conosce un modo per effettuare una query con Linq o con metodi alternativi sulle table di Azure?? Come si può fare il retrieve dei dati ad esempio data una specifica chiave?? Ecc.
Dettagli progetto: Il mio progetto è un progetto cloud con un WebRole che sfrutta il pattern MVC in C#.
Vi ringrazio e vi chiedo scusa per il poema! Spero qualcuno possa aiutarmi. :)
Cordialmente,

Stefano

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.