我正在迁移以将新的存储客户端库用于我的 Azure 表存储。
使用之前的Storage Client Library 1.7命名空间进行查询:
var orders = serviceContext
.CreateQuery<Order>(tableName)
.AsTableServiceQuery<Order>()
.Where(e => e.PartitionKey == partitionKey && e.RowKey == rowKey)
使用新的Storage Client Library 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);
如果我错了,请纠正我,但 1.7 更简洁,使用强类型实体,实现 IQueryable 接口并利用 LINQ 的全部功能。2.0 版让我觉得我又在使用 ADO.NET 数据集了。
我完全错过了这里的情节吗?我知道已经有了重大的性能改进,但为什么 2.0 版感觉像 API 降级?