Export (0) Print
Expand All

TableServiceExtensionMethods.AsTableServiceQuery Method

Updated: April 24, 2013

[This topic is part of the Microsoft Azure Storage Client Library 1.7, which has been deprecated. See Storage Client Library for the latest version.]

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
Dim query As IQueryable(Of TElement)
Dim returnValue As CloudTableQuery(Of TElement)

returnValue = TableServiceExtensionMethods.AsTableServiceQuery(query)

[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, Windows Server 2008, Windows 8.1, Windows Server 2012 R2, Windows 8 and Windows Server 2012

 

Show:
© 2014 Microsoft