Summary of Table Service Functionality
The Table service REST API is compliant with the REST API provided by WCF Data Services, with some differences, as described in the following sections.
Table Service Extensions
The Table service extends the functionality of WCF Data Services in the following ways.
Shared Key and Shared Key Lite Authentication
The Table service requires that each request be authenticated. Both Shared Key and Shared Key Lite authentication are supported. Shared Key authentication is more secure and is recommended for requests made against the Table service using the REST API. The Microsoft .NET Client Library for WCF Data Services supports Shared Key Lite authentication only.
For more information about authenticating requests, see Authentication for the Windows Azure Storage Services.
Continuation Tokens for Query Pagination
A query against the Table service may return a maximum of 1,000 items at one time and may execute for a maximum of five seconds. If the result set contains more than 1,000 items, or if the query did not complete within five seconds, the response includes headers which provide the developer with continuation tokens to use in order to resume the query at the next item in the result set. Continuation token headers may be returned for a Query Tables (REST API) operation or a Query Entities (REST API) operation.
Note that the total time allotted to the request for scheduling and processing the query is 30 seconds, including the five seconds for query execution.
For more information about continuation tokens, see Query Timeout and Pagination.
Primary Key System Properties
Every entity in the Table service has two key properties: the PartitionKey property and the RowKey property. These properties together form the table's primary key and uniquely identify each entity in the table.
Both properties require string values. It is the developer's responsibility to provide values for these properties when a new entity is inserted, and to include them in any update or delete operation on an entity.
For more information about these required key properties, see Understanding the Table Service Data Model.
Timestamp System Property
Every entity in the Table service has a Timestamp system property. The Timestamp property is a DateTime value that indicates the time an entity was last modified.
The Timestamp value should be considered opaque, and the property should not be read or set, because the stored content of the Timestamp value may change in future releases.
For more information about the Timestamp property, see Understanding the Table Service Data Model.
The Table service supports batch transactions on entities that are in the same table and belong to the same partition group, which means they have the same PartitionKey value. This allows multiple insert, update, merge, and delete operations to be supported within a single atomic transaction. The Table service supports a subset of the functionality provided by the .NET Client Library for WCF Data Services.
For more information about batch operations, see Performing Entity Group Transactions.
Table Service Restrictions
The Table service has the following restrictions on functionality provided by WCF Data Services.
The Table service does not support using the Credentials property of the DataServiceContext class to authenticate a request. Instead, you must authenticate a request against the Table service by adding an Authorization header to the request. For more information, see Authentication for the Windows Azure Storage Services.
Not all property types supported by the WCF Data Services Framework are supported by the Table service. For a list of supported property types, see Understanding the Table Service Data Model.
Operations on Links
The Table service does not currently support links between tables. Links are associative relationships between data.
The specific methods of the .NET Client Library for WCF Data Services Framework provided for links which are not available for use with the Table service are:
Operations on Select Properties
The Table service does not currently support retrieving individual property values from a table. Only complete entities may be retrieved with a query.
The specific methods of the .NET Client Library for WCF Data Services provided for property retrieval which are not available for use with the Table service are:
LINQ Query Operators
The Table service supports using language-integrated queries (LINQ) with the .NET Client Library for WCF Data Services to access data. Only these LINQ query operators are supported for use with the Table service:
For more information, see Query Operators (Table Service Support).
LINQ Comparison Operators
The Table service supports the GetMetadataURI method of the DataServiceContext class, but it does not return any schema information beyond the three fixed schema properties. These properties are PartitionKey, RowKey, and Timestamp.
WCF Data Services supports sending payloads in the JSON format. The Table service does not currently support JSON.