Dotazování entit

Operace se Query Entities dotazuje na entity v tabulce a zahrnuje $filter možnosti a $select .

Žádost

Pro požadavky, které používají $select možnost dotazu, musíte použít verzi 2011-08-18 nebo novější. Kromě toho DataServiceVersion musí být hlavičky a MaxDataServiceVersion nastaveny na 2.0hodnotu .

Pokud chcete použít projekci, musíte požadavek vytvořit ve verzi 2013-08-15 nebo novější. Hlavičky DataServiceVersion a MaxDataServiceVersion musí být nastaveny na 3.0hodnotu . Další informace najdete v tématu Nastavení hlaviček verze datové služby OData.

Požadavek můžete sestavit Query Entities následujícím způsobem. Doporučujeme HTTPS. Nahraďte myaccount názvem vašeho účtu úložiště a mytable nahraďte názvem vaší tabulky.

Metoda Identifikátor URI žádosti Verze PROTOKOLU 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

Adresa sady entit, která se má dotazovat, může mít v identifikátoru URI požadavku různé podoby. Další informace najdete v tématu Dotazování tabulek a entit.

Identifikátor URI služby emulovaného úložiště

Při vytváření požadavku na službu emulovaného úložiště zadejte název hostitele emulátoru a port služby Table Service jako 127.0.0.1:10002. Postupujte podle těchto informací s názvem emulovaného účtu úložiště.

Metoda Identifikátor URI žádosti Verze PROTOKOLU 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

Služba Table Service v emulátoru úložiště se od Azure Table Storage liší několika způsoby. Další informace najdete v tématu Rozdíly mezi emulátorem úložiště a službami Azure Storage.

Parametry identifikátoru URI

Operace Query Entities podporuje možnosti dotazu, které definuje specifikace protokolu OData .

Hlavičky požadavku

Následující tabulka popisuje požadované a volitelné hlavičky požadavků:

Hlavička požadavku Popis
Authorization Povinná hodnota. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
Date nebo x-ms-date Povinná hodnota. Určuje formát UTC (Coordinated Universal Time). Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
x-ms-version Nepovinný parametr. Určuje verzi operace, která se má pro tento požadavek použít. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
Accept Nepovinný parametr. Určuje akceptované typy obsahu datové části odpovědi. Možné hodnoty:

- application/atom+xml (pouze verze před 11. 12. 2015)
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

Další informace najdete v tématu Formát datové části pro operace služby Table Storage.
x-ms-client-request-id Nepovinný parametr. Poskytuje klientem vygenerovanou neprůselnou hodnotu s limitem počtu znaků 1 kibibajt (KiB), který je zaznamenán v protokolech při konfiguraci protokolování. Důrazně doporučujeme použít tuto hlavičku ke korelaci aktivit na straně klienta s požadavky, které server přijímá.

Text požadavku

Žádné

Ukázkový požadavek

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: 2015-12-11  
x-ms-date: Mon, 27 Jun 2016 15:25:14 GMT  
Authorization: SharedKeyLite myaccount:<some key>  
Accept: application/json;odata=nometadata  
Accept-Charset: UTF-8  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  

Odpověď

Odpověď obsahuje stavový kód HTTP, sadu hlaviček odpovědi a tělo odpovědi.

Stavový kód

Úspěšná operace vrátí stavový kód 200 (OK).

Informace o stavových kódech najdete v tématech Kódy stavů a chyb a Kódy chyb služby Table Storage.

Hlavičky odpovědi

Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může také obsahovat další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Hlavička odpovědi Description
x-ms-continuation-NextPartitionKey

x-ms-continuation-NextRowKey
Označuje, že:

– Počet entit, které se mají vrátit, přesahuje 1 000.
– Došlo k překročení intervalu časového limitu serveru.
– Dojde k dosažení hranice serveru, pokud dotaz vrátí data, která jsou rozložená mezi více serverů.

Další informace o používání tokenů pro pokračování najdete v tématu Vypršení časového limitu dotazu a stránkování.
x-ms-request-id Jednoznačně identifikuje požadavek, který byl proveden. Můžete ho použít k řešení potíží s požadavkem. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API.
x-ms-version Označuje verzi služby Table Storage, která se použila ke spuštění požadavku. Tato hlavička se vrátí pro požadavky provedené proti verzi 2009-09-19 a novější.
Date Hodnota data a času UTC, která určuje čas, kdy služba odeslala odpověď.
Content-Type Označuje typ obsahu datové části. Hodnota této hlavičky závisí na hodnotě hlavičky Accept požadavku. Možné hodnoty:

- application/atom+xml (pouze verze před 11. 12. 2015)
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

Další informace o platných typech obsahu najdete v tématu Formát datové části pro operace služby Table Storage.
x-ms-client-request-id Dá se použít k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota této hlavičky se rovná hodnotě x-ms-client-request-id hlavičky, pokud se nachází v požadavku a hodnota je maximálně 1 024 viditelných znaků ASCII. Pokud se hlavička x-ms-client-request-id v požadavku nenachází, nebude tato hlavička v odpovědi.

Ukázková odpověď

Response Status:  
HTTP/1.1 200 OK  
  
Response Headers:  
Content-Type: application/json  
x-ms-request-id: 87f178c0-44fe-4123-a4c1-96c8fa6d9654  
Date: Mon, 27 Jun 2016 15:25:14 GMT  
x-ms-version: 2015-12-11  
Connection: close  

Text odpovědi

Operace Query Entities vrátí seznam entit v tabulce jako sadu entit OData. Seznam entit je ve formátu JSON nebo informačním kanálu Atom v závislosti na Accept hlavičce požadavku.

Poznámka

Jako formát datové části doporučujeme JSON. Je to jediný podporovaný formát pro verzi 2015-12-11 a novější.

JSON (verze 2013-08-15 a novější)

Tady je ukázkový identifikátor URI požadavku pro Query Entities operaci v tabulce zákazníků:

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

Tady je datová část odpovědi ve formátu JSON bez metadat:

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

Tady je datová část odpovědi ve formátu JSON s minimálními metadaty:

{  
   "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"  
      }  
   ]  
}  

Tady je datová část odpovědi ve formátu JSON s úplnými metadaty:

{  
   "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"  
      }  
   ]  
}  

Informační kanál Atom (verze před 11. 12. 2015)

Tady je ukázkový identifikátor URI požadavku pro Query Entities operaci v tabulce zákazníků:

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

Tady je ukázková odpověď Atomu Query Entities pro operaci:

<?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/"0x5B168C7B6E589D2"">  
      <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>  

Autorizace

Tuto operaci může provést vlastník účtu a kdokoli se sdíleným přístupovým podpisem, který má oprávnění k provedení této operace.

Poznámky

Dotaz na Table Storage může vrátit maximálně 1 000 entit najednou a může běžet maximálně pět sekund. Odpověď obsahuje vlastní hlavičky, které obsahují sadu tokenů pro pokračování v některém z následujících případů:

  • Sada výsledků obsahuje více než 1 000 entit.
  • Dotaz se nedokončil během pěti sekund.
  • Dotaz překročí hranici oddílu.

Tokeny pro pokračování můžete použít k vytvoření dalšího požadavku na další stránku dat. Další informace o tokenech pro pokračování najdete v tématu Vypršení časového limitu a stránkování dotazů.

Poznámka

Při vytváření dalších požadavků, které obsahují tokeny pro pokračování, nezapomeňte na požadavek předat původní identifikátor URI. Pokud jste například jako součást původního požadavku zadali $filtermožnost dotazu , $selectnebo $top , zahrňte tuto možnost do dalších požadavků. V opačném případě můžou vaše následné požadavky vrátit neočekávané výsledky.

Možnost $top dotazu v tomto případě určuje maximální počet výsledků na stránku. Neurčí maximální počet výsledků v celé sadě odpovědí.

Další informace najdete v tématu Dotazování tabulek a entit.

U žádostí o promítání, které používají $select možnost dotazu, musí být verze 2011-08-18 nebo novější. Maximální počet vrácených vlastností je 255. Text odpovědi obsahuje všechny předpokládané vlastnosti, i když vlastnosti nejsou součástí vrácené entity.

Pokud například požadavek obsahuje vlastnost, kterou projektovaná entita neobsahuje, je chybějící vlastnost označena atributem null. Předchozí tělo ukázkové odpovědi obsahuje Address vlastnost, která není součástí předpokládané entity. Hodnota vlastnosti je tedy null: <d:Address m:null="true" />.

Celková doba přidělená požadavku na plánování a zpracování dotazu je 30 sekund. Tento součet zahrnuje pět sekund pro spuštění dotazu.

Všimněte si, že pravá strana výrazu dotazu musí být konstanta. Na vlastnost na pravé straně výrazu nemůžete odkazovat. Podrobnosti o vytváření výrazů dotazů najdete v tématu Tabulky dotazů a entity.

Výraz dotazu nemůže obsahovat null hodnoty. Pokud je použijete v řetězci dotazu, musí být zakódovány následující znaky:

  • Lomítko (/)

  • Otazník (?)

  • Dvojtečka (:)

  • Zavináč (@)

  • Ampersand (&)

  • Rovnítko (=)

  • Znaménko plus (+)

  • Čárka (,)

  • Znaménko dolaru ($)

Každá aplikace, která může autorizovat a odeslat požadavek HTTP GET , se může dotazovat na entity v tabulce.

Další informace o podporovaných operacích dotazů se službou Table Storage prostřednictvím LINQ najdete v tématech Podporované operátory dotazů pro Table Storage a Zápis dotazů LINQ pro Table Storage.

Viz také

Kódy chyb Table Storage
Autorizace žádostí do Služby Azure Storage
Stavové kódy a kódy chyb
Adresování prostředků služby Table Storage
Dotazování na tabulky a entity
Nastavení hlaviček verze datové služby OData
Vložit entitu
Aktualizovat entitu
Odstranit entitu