I am migrating to using the new Storage Client Library for my Azure Table Storage.
Querying with the previous Storage Client Library 1.7 namespace:
var orders = serviceContext .CreateQuery<Order>(tableName) .AsTableServiceQuery<Order>() .Where(e => e.PartitionKey == partitionKey && e.RowKey == rowKey)
Querying with the new Storage Client Library 2.0 classes:
string partitionKeyFilter = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partitionKey); string rowKeyFilter = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, rowKey); string combinedFilter = TableQuery.CombineFilters(partitionKeyFilter, TableOperators.And, rowKeyFilter); var query = new TableQuery<Order>().Where(combinedFilter); var orders = table.ExecuteQuery<Order>(query);
Please correct me if I'm wrong, but 1.7 is cleaner, uses strongly-typed entities, implements the IQueryable interface and utilizes the full power of LINQ. Version 2.0 makes me feel like I'm working with ADO.NET Datasets again.
Am I completely missing the plot here? I understand that there have been major performance improvements, but version 2.0 feels like a downgrade of an API.
Why isn't there a
IQueryable<T> interface for 2.0?