Sto migrando all'utilizzo della nuova libreria client di archiviazione per il mio spazio di archiviazione di Azure Table.
Interrogazione con il precedente spazio dei nomi Memoria client di archiviazione 1.7 :
var orders = serviceContext
.CreateQuery<Order>(tableName)
.AsTableServiceQuery<Order>()
.Where(e => e.PartitionKey == partitionKey && e.RowKey == rowKey)
Interrogazione con le nuove classi Storage Client 2.0 :
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);
Per favore correggimi se sbaglio, ma 1.7 è più pulito, usa entità strongmente tipizzate, implementa l'interfaccia IQueryable e sfrutta tutta la potenza di LINQ. La versione 2.0 mi dà la sensazione di lavorare di nuovo con i set di dati ADO.NET.
Mi manca completamente la trama qui? Capisco che ci sono stati importanti miglioramenti delle prestazioni, ma la versione 2.0 sembra un downgrade di un'API.
Perché non c'è un'interfaccia IQueryable<T>
per 2.0?