在Windows Azure表存储中,没有允许自动递增ID的"类型".我以为我可以使用'IsIdentity',但是复选框是灰色的(这应该让我自动递增,对吧?).
任何人都可以告诉我如何获得自动递增字段或解决方法吗?
谢谢!
除非出于某种原因,你实际上需要单调增加数字键,否则使用DateTime.UtcNow.Ticks.ToString()是通常的方法.(因为Table Storage上的PartitionKey值是一个字符串,所以需要将其转换.)
这种方法的优点是Table Storage行由PartitionKey自动排序(然后由RowKey排序),因此您将按插入顺序返回行,就像SQL Server中的IDENTITY列一样.
如果您想要最近返回的记录,请(long.MaxValue - DateTime.UtcNow.Ticks).ToString()改用.
请注意,第一种方法将为接下来的1158年提供一个18位数字.如果您想避免Y3160错误,请考虑使用前导零(DateTime.UtcNow.Ticks.ToString("0000000000000000000"))填充该值.
第二种方法确实会在很长一段时间内给出一个19位数的数字,超过DateTime.MaxValue,所以你可能在那里很好.
还要记住,使用负载平衡等等,如果两个服务器在同一时间创建记录,则很可能会出现重复,因此您应该具有将键值增加1的重试语义.
| 归档时间: |
|
| 查看次数: |
2086 次 |
| 最近记录: |