TableServiceExtensionMethods.AsTableServiceQuery Method
Converts a query of type DataServiceQuery to a CloudTableQuery object that handles continuation tokens and retries failed calls to the Table service.
Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)
[ExtensionAttribute] public static CloudTableQuery<TElement> AsTableServiceQuery<TElement> ( IQueryable<TElement> query )
GenericParameters
- TElement
The type of the element.
Parameters
- query
Type: System.Linq.IQueryable
A DataServiceQuery object.
Return Value
Type: Microsoft.WindowsAzure.StorageClient.CloudTableQuery A CloudTableQuery object.The following code example queries entities using a simulated LIKE clause.
// Get contacts filtered by prefix. public static List<ContactEntity> GetContactsByPrefix(string prefix) { // Get data context. TableServiceContext context = tableClient.GetDataServiceContext(); CloudTableQuery<ContactEntity> query; // Query entities to return names beginning with the specified letter. // Note that because wildcard queries are not supported, it's necessary to perform prefix // matching by using string comparisons. if (!String.IsNullOrEmpty(prefix) && Char.IsLetter(prefix[0])) { char prefixChar = prefix[0]; int nextCharValue = ((int)prefixChar) + 1; char nextChar = (char)nextCharValue; query = context.CreateQuery<ContactEntity>(tableName) .Where(e => (e.FirstName.CompareTo(prefixChar.ToString().ToUpper()) >= 0 && e.FirstName.CompareTo(nextChar.ToString().ToUpper()) < 0)) .AsTableServiceQuery<ContactEntity>(); } else { query = context.CreateQuery<ContactEntity>(tableName).AsTableServiceQuery<ContactEntity>(); } // Populate list of entities from query results. List<ContactEntity> list = new List<ContactEntity>(); foreach (ContactEntity entity in query) { list.Add(entity); } return list; } // Class to represent the table schema public class ContactEntity : TableServiceEntity { public ContactEntity() { } public string FirstName { get; set; } public string LastName { get; set; } public string Email { get; set; } public string HomePhone { get; set; } public string CellPhone { get; set; } public string StreetAddress { get; set; } public string City { get; set; } public string State { get; set; } public string ZipCode { get; set; } }
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Development Platforms
Windows Vista, Windows 7 and Windows Server 2008Target Platforms