Export (0) Print
Expand All
8 out of 9 rated this helpful - Rate this topic

TableServiceExtensionMethods.AsTableServiceQuery Method

Updated: April 24, 2013

[This topic is part of the Windows Azure Storage Client Library 1.7, which has been deprecated. The current recommended version is Storage Client Library 3.0.]

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)
'Usage

'Declaration
<ExtensionAttribute> _
Public Shared Function AsTableServiceQuery(Of TElement) ( _
	query As IQueryable(Of TElement) _
) As CloudTableQuery(Of TElement)

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 2008

Target Platforms

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.