我希望有一个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来查询翻译?
答案 0 :(得分:1)
如果您拥有帐户密钥和名称,则Azure表存储是可查询的。最好的方法是创建自己的OData服务并将其转换为查询。您可以使用WCF数据服务工具包来帮助您执行此操作。您可以查看项目here。这将使您的服务公开为OData,并帮助您编写更新插入等。