我有一个Azure存储表,其中每个分区都存储有关我的自定义数据类的一些信息。每个分区行更像是该类的历史记录,并且在查询时仅支持返回最新记录。
当我知道要查找哪个分区时,很容易得到这样的最新记录:
string pkFilter = TableQuery<MyEntity>.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partitionkeyvalue);
var query = new TableQuery<MyEntity>().Where(pkFilter).Take(1);
现在的情况是从所有分区获得最高记录。如何以有效的方式在单个调用中检索每个分区的最高记录?
答案 0 :(得分:2)
您实际上是在尝试按操作应用组;这是一个艰难的,因为no-sql不能很好地处理数据库概念。
因此,您唯一的选择仅限于解决方法;如果你有十几个PK,那么桌面上的并行操作可能是有意义的。如果您有大量PK,则可能需要创建另一个仅包含最新信息的表,并在原始表的同时作为批处理操作的一部分进行更新。这样,您的辅助表始终包含正确的数据(因为批处理操作成功或失败)。