Esporta (0) Stampa
Espandi tutto

Query di tabelle ed entità

Aggiornamento: agosto 2014

L'esecuzione di query su tabelle ed entità nel servizio tabelle richiede un'attenta creazione dell'URI della richiesta. Nelle sezioni seguenti vengono descritte le opzioni di query e vengono illustrati alcuni scenari comuni.

Per restituire tutte le tabelle in un account di archiviazione specificato, eseguire un'operazione GET nella risorsa Tabelle, come descritto nell'operazione Query Tables. L'URI di base per l'indirizzamento della risorsa Tabelle è il seguente:

https://myaccount.table.core.windows.net/Tables

Per restituire una singola tabella denominata, specificare la tabella nel modo seguente:

https://myaccount.table.core.windows.net/Tables('MyTable')

Per restituire tutte le entità in una tabella, specificare il nome della tabella nell'URI, senza la risorsa Tabelle:

https://myaccount.table.core.windows.net/MyTable()

I risultati delle query vengono ordinati per PartitionKey, quindi per RowKey. Altri tipi di ordinamento dei risultati non sono supportati.

È possibile specificare opzioni aggiuntive per limitare il set di tabelle o entità restituite, come descritto nella sezione Opzioni di query supportate seguente.

noteNota
È possibile limitare il numero di entità restituite per una singola richiesta, se la query supera il numero massimo di entità, supera l'intervallo di timeout o supera il limite della partizione. Per altre informazioni, vedere Timeout e paginazione delle query.

Il servizio tabelle supporta le opzioni di query seguenti, conformi alla specifica del protocollo OData. È possibile utilizzare queste opzioni per limitare il set di tabelle, entità o proprietà di entità restituite da una query.

 

Opzione query di sistema Descrizione

$filter

Restituisce solo le tabelle o le entità che soddisfano il filtro specificato.

Si noti che non sono consentiti più di 15 confronti discreti in una stringa $filter.

$top

Restituisce solo le prime n tabelle o entità del set.

$select

Restituisce le proprietà desiderate di un'entità dal set. Questa opzione di query è supportata solo per le richieste che utilizzano la versione 2011-08-18 o successive. Per altre informazioni, vedere Scrittura di query LINQ nel servizio tabelle.

noteNota
Le opzioni di query aggiuntive definite da OData non sono supportate dal servizio tabelle.

In una clausola $filter è possibile utilizzare gli operatori di confronto per specificare i criteri in base ai quali filtrare i risultati di query.

Per tutti i tipi di proprietà, sono supportati gli operatori di confronto seguenti:

 

Operatore Espressione dell'URI

Equal

eq

GreaterThan

gt

GreaterThanOrEqual

ge

LessThan

lt

LessThanOrEqual

le

NotEqual

ne

Per le proprietà booleane sono supportati gli operatori seguenti:

 

Operatore Espressione dell'URI

And

and

Not

not

Or

or

Per ulteriori informazioni sulla sintassi del filtro, vedere la specifica del protocollo OData.

Per poter utilizzare i caratteri seguenti in una stringa di query, è necessario codificarli:

  • Barra (/)

  • Punto interrogativo (?)

  • Due punti (:)

  • Simbolo @

  • E commerciale (&)

  • Segno di uguale (=)

  • Segno più (+)

  • Virgola (,)

  • Segno del dollaro ($)

Negli esempi seguenti viene illustrato come creare l'URI della richiesta per alcune query di entità tipiche utilizzando la sintassi REST. Le stesse query possono essere scritte utilizzando la sintassi LINQ. Per altre informazioni, vedere Scrittura di query LINQ nel servizio tabelle.

Si noti che le opzioni $top e $filter possono essere entrambe utilizzate per filtrare i nomi delle tabelle, utilizzando la sintassi illustrata per applicare filtri sulle proprietà di tipo String.

Per restituire le prime n entità per una query qualsiasi, specificare l'opzione di query $top. Nell'esempio seguente vengono restituite le prime n entità da una tabella denominata Customers:

https://myaccount.table.core.windows.net/Customers()?$top=10

Poiché le proprietà PartitionKey e RowKey costituiscono la chiave primaria di un'entità, è possibile utilizzare una sintassi speciale per identificare l'entità, come illustrato di seguito:

https://myaccount.table.core.windows.net/Customers(PartitionKey='MyPartition',RowKey='MyRowKey1')

In alternativa, è possibile specificare queste proprietà come parte dell'opzione $filter, come illustrato nella sezione seguente.

Si noti che per i valori delle costanti e i nomi delle proprietà chiave viene fatta distinzione tra maiuscole e minuscole. Le proprietà PartitionKey e RowKey sono entrambe di tipo String.

Quando si crea una stringa di filtro, tenere presente queste regole:

  • Utilizzare gli operatori logici definiti dalla specifica del protocollo OData per confrontare una proprietà con un valore. Si noti che non è possibile confrontare una proprietà con un valore dinamico; un lato dell'espressione deve essere una costante.

  • Il nome della proprietà, l'operatore e il valore della costante devono essere separati da spazi con codifica URL. Uno spazio con codifica URL è simile a %20.

  • Viene effettuata la distinzione tra maiuscole e minuscole per tutte le parti della stringa di filtro.

  • Il valore costante deve essere dello stesso tipo di dati della proprietà affinché il filtro restituisca risultati validi. Per ulteriori informazioni sui tipi di proprietà supportati, vedere Informazioni sul modello di dati del servizio tabelle.

noteNota
Assicurarsi che una proprietà sia stata tipizzata in modo esplicito prima di considerarla di un tipo diverso dalla stringa. Se una proprietà è stata tipizzata in modo esplicito, il tipo viene indicato nella risposta quando viene restituita l'entità. Se la proprietà non è stata tipizzata in modo esplicito, è di tipo String e il tipo non è indicato nella risposta quando viene restituita l'entità.

Quando si applicano filtri alle proprietà della stringa, includere la costante della stringa tra virgolette singole.

Nell'esempio seguente vengono applicati filtri alle proprietà PartitionKey e RowKey. Alla stringa della query è anche possibile aggiungere ulteriori proprietà non chiave.

https://myaccount.table.core.windows.net/Customers()?$filter=PartitionKey%20eq%20'MyPartitionKey'%20and%20RowKey%20eq%20'MyRowKey1'

Nell'esempio seguente vengono applicati filtri alle proprietà FirstName e LastName:

https://myaccount.table.core.windows.net/Customers()?$filter=LastName%20eq%20'Smith'%20and%20FirstName%20eq%20'John'

Si noti che il servizio tabelle non supporta le query con caratteri jolly. Tuttavia, è possibile eseguire la corrispondenza di prefissi utilizzando gli operatori di confronto sul prefisso desiderato. Nell'esempio seguente vengono restituite le entità con una proprietà LastName che inizia con la lettera 'A':

https://myaccount.table.core.windows.net/Customers()?$filter=LastName%20ge%20'A'%20and%20LastName%20lt%20'B'

Per applicare filtri a un numero intero o a virgola mobile, specificare il valore della costante nell'URI senza virgolette.

In questo esempio vengono restituite tutte le entità con una proprietà Age il cui valore è maggiore di 30:

https://myaccount.table.core.windows.net/Customers()?$filter=Age%20gt%2030

In questo esempio vengono restituite tutte le entità con una proprietà AmountDue il cui valore è minore o uguale a 100,25:

https://myaccount.table.core.windows.net/Customers()?$filter=AmountDue%20le%20100.25%20

Per applicare filtri a un valore booleano, specificare true o false senza virgolette.

Nell'esempio seguente vengono restituite tutte le entità per le quali la proprietà IsActive è impostata su true:

https://myaccount.table.core.windows.net/Customers()?$filter=IsActive%20eq%20true

Per applicare filtri a un valore DateTime, specificare la parola chiave datetime nell'URI, seguita dalla costante date/time tra virgolette singole. La costante data/ora deve essere in formato UTC combinato, come descritto in Formattazione di valori della proprietà DateTime.

Nell'esempio seguente vengono restituite le entità per le quali la proprietà CustomerSince è uguale a 10 luglio 2008:

https://myaccount.table.core.windows.net/Customers()?$filter=CustomerSince%20eq%20datetime'2008-07-10T00:00:00Z'

Per applicare filtri a un valore GUIID, specificare la parola chiave guid nell'URI, seguita dalla costante GUID tra virgolette singole.

Nell'esempio seguente vengono restituite le entità per le quali la proprietà GuidValue è uguale a:

https://myaccount.table.core.windows.net/Customers()?$filter=GuidValue%20eq%20guid'a455c695-df98-5678-aaaa-81d3367e5a34'

Vedere anche

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft