Esporta (0) Stampa
Espandi tutto

Query Entities

Aggiornamento: febbraio 2014

Tramite l'operazione Query Entities vengono eseguite query sulle entità di una tabella. Sono incluse le opzioni $filter e $select.

Per le richieste che utilizzano l'opzione di query $select, la richiesta deve essere effettuata utilizzando la versione 2011-08-18 o successive. Inoltre, le intestazioni DataServiceVersion e MaxDataServiceVersion devono essere impostate su 2.0. La richiesta Query Entities può essere costruita nel modo seguente. Si consiglia di utilizzare HTTPS. Sostituire myaccount con il nome dell'account di archiviazione e mytable con il nome della tabella:

 

Metodo URI della richiesta Versione HTTP

GET

https://myaccount.table.core.windows.net/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names>

https://myaccount.table.core.windows.net/mytable()?$filter=<query-expression>&$select=<comma-separated-property-names>

HTTP/1.1

L'indirizzo dell'entità impostata per l'esecuzione delle query può presentare diversi formati nell'URI della richiesta. Per altre informazioni, vedere Query di tabelle ed entità.

Quando si effettua una richiesta nel servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta del servizio tabelle come 127.0.0.1:10002, seguiti dal nome dell'account di archiviazione emulato:

 

Metodo URI della richiesta Versione HTTP

GET

http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names>

http://127.0.0.1:10002/devstoreaccount1/mytable()?$filter=<query-expression>?$select=<comma-separated-property-names>

HTTP/1.1

Il servizio tabelle nell'emulatore di archiviazione differisce dal servizio tabelle di Microsoft® Azure™ sotto diversi aspetti. Per altre informazioni, vedere About Development Storage e Differenze tra l'emulatore di archiviazione e i Servizi di archiviazione Azure.

L'operazione Query Entities supporta le opzioni di query definite dalla specifica del protocollo OData. Per altre informazioni, vedere la pagina relativa alle convenzioni URI OData.

Nella tabella seguente vengono descritte le intestazioni di richiesta obbligatorie e facoltative.

 

Intestazione della richiesta Descrizione

Authorization

Obbligatorio. Specifica lo schema di autenticazione, il nome dell'account e la firma. Per altre informazioni, vedere Autenticazione per i servizi di archiviazione di Azure.

Date o x-ms-date

Obbligatorio. Specifica l'ora UTC (Coordinated Universal Time) per la richiesta. Per altre informazioni, vedere Autenticazione per i servizi di archiviazione di Azure.

x-ms-version

Facoltativo. Specifica la versione dell'operazione da utilizzare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure.

Accept

Facoltativo. Specifica il tipo di contenuto accettato del payload di risposta. I valori possibili sono:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Per altre informazioni, vedere Formato di payload per le operazioni del servizio tabelle.

x-ms-client-request-id

Facoltativo. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 KB che viene registrato nei log di analisi quando la registrazione di Analisi archiviazione è abilitata. L'utilizzo di questa intestazione è consigliato per la correlazione tra le attività sul lato client e le richieste ricevute dal server. Per altre informazioni vedere Informazioni sulla registrazione di Analisi archiviazione e l'articolo relativo all'utilizzo di log per tenere traccia delle richiesta di archiviazione nella registrazione di Azure.

Request Syntax:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince  HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Mon, 25 Nov 2013 15:25:14 GMT
Authorization: SharedKeyLite myaccount:<some key>
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
DataServiceVersion: 2.0;NetFx
MaxDataServiceVersion: 2.0;NetFx

Nella risposta sono inclusi un codice di stato HTTP, un set di intestazioni per la risposta e il corpo di una risposta.

Un'operazione completata correttamente restituisce il codice di stato 200 (OK).

Per informazioni sui codici di stato, vedere Codici ed errori di stato e Codici di errore del servizio tabelle.

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; inoltre, possono essere incluse intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

 

Intestazione della risposta Descrizione

x-ms-continuation-NextPartitionKey

x-ms-continuation-NextRowKey

Se il numero di entità da restituire supera 1.000, se l'intervallo di timeout del server viene superato o se la query supera il limite della partizione, l'intestazione della risposta include le intestazioni di continuazione x-ms-continuation-NextPartitionKey e x-ms-continuation-NextRowKey.

Per altre informazioni sull'utilizzo dei token di continuazione, vedere Timeout e paginazione delle query.

x-ms-request-id

Questa intestazione identifica in modo univoco la richiesta effettuata e può essere utilizzata per risolvere i problemi relativi alla richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi alle operazioni dell'API.

x-ms-version

Indica la versione del servizio tabelle utilizzata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive.

Date

Valore data/ora UTC generato dal servizio che indica l'ora in cui è stata avviata la risposta.

Content-Type

Indica il tipo di contenuto del payload. Il valore di questa intestazione dipende dal valore dell'intestazione della richiesta Accept. I valori possibili sono:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Per altre informazioni sui tipi di contenuto validi, vedere Formato di payload per le operazioni del servizio tabelle.

Response Status:
HTTP/1.1 200 OK

Response Headers:
Content-Type: application/atom+xml;charset=utf-8
x-ms-request-id: 87f178c0-44fe-4123-a4c1-96c8fa6d9654
Date: Mon, 25 Nov 2013 15:25:14 GMT
x-ms-version: 2013-08-15
Connection: close

L'operazione Query Entities restituisce l'elenco delle entità in una tabella come set di entità OData, in un formato JSON o in un feed Atom, a seconda dell'intestazione Accept della richiesta.

Di seguito è riportato un URI della richiesta di esempio per un'operazione Query Entities in una tabella Customers.

GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince

Di seguito è riportato il corpo della risposta per un feed Atom:

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xml:base="https://myaccount.table.core.windows.net">
   <id>https://myaccount.table.core.windows.net/Customers</id>
   <title type="text">Customers</title>
   <updated>2013-08-22T00:50:32Z</updated>
   <link rel="self" title="Customers" href="Customers" />
   <entry m:etag="W/&quot;0x5B168C7B6E589D2&quot;">
      <id>https://myaccount.table.core.windows.net/Customers(PartitionKey='Customer',RowKey='Name')</id>
      <category term="myaccount.Customers" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
      <link rel="edit" title="Customers" href="Customers(PartitionKey='Customer',RowKey='Name')" />
      <title />
      <updated>2013-08-22T00:50:32Z</updated>
      <author>
         <name />
      </author>
      <content type="application/xml">
         <m:properties>
            <d:PartitionKey>Customer</d:PartitionKey>
            <d:RowKey>Name</d:RowKey>
            <d:Timestamp m:type="Edm.DateTime">2013-08-22T00:20:16.3134645Z</d:Timestamp>
            <d:CustomerSince m:type="Edm.DateTime">2008-10-01T15:25:05.2852025Z</d:CustomerSince>
         </m:properties>
      </content>
   </entry>
</feed>

Di seguito è riportato il feed di risposta JSON:

Senza metadati:

{
   "value":[
      {
         "PartitionKey":"Customer",
         "RowKey":"Name",
         "Timestamp":"2013-08-22T00:20:16.3134645Z",
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"
      }
   ]
}

Metadati minimi:

{
   "odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers",
   "value":[
      {
         "PartitionKey":"Customer",
         "RowKey":"Name",
         "Timestamp":"2013-08-22T00:20:16.3134645Z",
         "CustomerSince@odata.type":"Edm.DateTime",
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"
      }
   ]
}

Metadati completi:

{
   "odata.metadata":" https://myaccount.table.core.windows.net/metadata#Customers",
   "value":[
      {
         "odata.type":"myaccount.Customers",
         "odata.id":"https://myaccount.table.core.windows.net/Customers(PartitionKey=Customer',RowKey='Name')",
         "odata.etag":"W/\"0x5B168C7B6E589D2\"",
         "odata.editLink":"Customers(PartitionKey=Customer',RowKey='Name')",
         "PartitionKey":"Customer",
         "RowKey":"Name",
         "Timestamp@odata.type":"Edm.DateTime",
         "Timestamp":"2013-08-22T00:20:16.3134645Z",
         "CustomerSince@odata.type":"Edm.DateTime",
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"
      }
   ]
}

Questa operazione può essere eseguita dal proprietario dell'account e da qualsiasi altro utente che utilizza una firma di accesso condiviso con l'autorizzazione di esecuzione di questa operazione.

Una query nel servizio tabelle può restituire un massimo di 1.000 entità contemporaneamente e può essere eseguita per un massimo di cinque secondi. Se il set di risultati contiene più di 1.000 entità, se la query non viene completata entro cinque secondi o se la query supera il limite della partizione, la risposta include intestazioni personalizzate contenente un set di token di continuazione. I token di continuazione può essere utilizzato per costruire una richiesta successiva per la pagina di dati successiva. Per altre informazioni sui token di continuazione, vedere Timeout e paginazione delle query.

Per le richieste di proiezione basate sull'opzione di query $select, la richiesta deve essere effettuata utilizzando la versione 2011-08-18 o successive. Il numero massimo di proprietà restituite è 255 e tutte le proprietà proiettate verranno incluse nel corpo della risposta anche se la proprietà non fa parte dell'entità restituita. Ad esempio, se la richiesta include una proprietà che l'entità proiettata non contiene, la proprietà mancante è contrassegnata con un attributo Null. Il corpo della risposta di esempio precedente include la proprietà Address, che non fa parte dell'entità proiettata, pertanto la proprietà è Null: <d:Address m:null=”true” />

Il tempo totale assegnato alla richiesta per la pianificazione e l'elaborazione della query è 30 secondi, inclusi i cinque secondi per l'esecuzione della query.

Si noti che il lato destro di un'espressione di query deve essere una costante. Non è possibile fare riferimento a una proprietà sul lato destro dell'espressione. Per informazioni dettagliate sulla costruzione delle espressioni di query, vedere Query di tabelle ed entità.

Un'espressione di query non può contenere i valori null. 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 ($)

Qualsiasi applicazione in grado di autenticare e inviare una richiesta GET HTTP può eseguire query sulle entità di una tabella.

Per altre informazioni sulle operazioni di query supportate nel servizio tabelle tramite LINQ, vedere Operatori di query supportati per il servizio tabelle e Scrittura di query LINQ nel servizio tabelle.

Mostra:
© 2014 Microsoft