AZURE表存储,ODATA和更友好的URI查询

时间:2010-12-08 23:25:27

标签: azure odata storage

我希望有一个ODATA服务使Azure Table Storage可查询,但我不想强制客户端创建引用PartitionKeys和RowKeys的查询。创建可以转换URI查询的ODATA服务需要什么,例如

http://MyService.svc/Blogs(‘CustomerId’)?startdate eq’12/01/2010’&enddate eq’12/15/2010’ 

到表存储查询,例如:

var rowKeyStart = startdate;    
var rowKeyEnd = enddate;    
var query = ctx.SomeBlogsTable.Where(p => p.PartitionKey == ‘CustomerId’ && 
             p.RowKey.CompareTo(rowKeyStart) <= 0 && 
             p.RowKey.CompareTo(rowKeyEnd) >= 0).Take(1000);

如果可以这样做,它的优点是可以让客户端在创建查询时不必了解Partitionkeys或Rowkeys。但它可以做到吗?必须使用自定义数据服务提供商吗?这样的提供者必须执行什么编码才能执行这样的URI来查询翻译?

1 个答案:

答案 0 :(得分:1)

如果您拥有帐户密钥和名称,则Azure表存储是可查询的。最好的方法是创建自己的OData服务并将其转换为查询。您可以使用WCF数据服务工具包来帮助您执行此操作。您可以查看项目here。这将使您的服务公开为OData,并帮助您编写更新插入等。