我有以下情景
虽然如此 用户上传图片,我
问题是我不知道如何获取Last Insert RowKey或最后插入的BlobName。
我需要分离的表和Blob,因为blob将移动到另一个存储,但Web应用程序仍然需要读取图像信息。
这个天蓝色的基础设施是否适合我的场景,或者我必须使用其他存储,例如DocumentDB,我相信它可以解决我的问题,因为我可以使用标准的SQL命令?
因为这是最简单的场景我可以想到我还不想拒绝Azure表。我试过像
这样的东西var table = storageAccount.CreateCloudTableClient()。GetTableReference(" Requests"); table.CreateIfNotExists();
var query = new TableQuery<RequestEntity>()
.Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "RequestEntity"))
.Max(r => r.RowKey);
Console.WriteLine(query.ToString());
Console.ReadLine();
但我得到的错误是
TableQuery Generic Type must provide a default parameterless constructor.
我可以获得最大值吗?而且问题是我连接到azure两次,一次用于获取最大id,第二次用新的最大id插入新行。
你怎么看?最好是尝试使用Azure Tables还是转换成DocumentDB或SQL Server?答案 0 :(得分:0)
您不能发出类似OrderBy的命令来检索插入的最后一条记录。虽然它可能不是最优雅的实现方式,但有一种解决方法。您可以设计分区键和行键,使最新记录始终显示在查询的顶部。这个blob帖子有关于如何实现这一目标的良好信息(http://blog.smarx.com/posts/using-numbers-as-keys-in-windows-azure)。然后,您可以使用LINQ查询来获取TopN,如以下文章https://msdn.microsoft.com/en-us/library/azure/dd894039.aspx
中所述