我使用Azure表存储使用REST API的插入实体命令将传感器数据写入表存储。当我使用Microsoft Azure存储资源管理器查看表时,列按照我最初用于使用“插入实体”命令将它们存储在表中的顺序显示。当我用例如编辑实体时在Microsoft Azure存储资源管理器中再次观察表,列(属性)按照从左到右的属性名称的字母顺序排序。 我现在正在尝试编写一个Xamarin.Forms应用程序,我希望在更新(编辑)实体后保留列的初始顺序。是否有可用于更新实体的库或方法而不会破坏列的初始顺序?
答案 0 :(得分:1)
@Zhaoxing Lu感谢您的回答。
是的,似乎Table Storage Service不支持特殊的列顺序。如果使用WindowsAzure.Storage library
插入实体,则按字母顺序返回属性。
然而,我使用更多"手工制作"基于Table Service REST API
的插入实体方法,使用Atom Feed保存实体,在NETMF设备上的表存储中存储数据的方法。
如果以这种方式存储到云,则会保留Atom Feed中属性的顺序,并在使用Microsoft Azure存储资源管理器监视时按此顺序排序。
由于我没有找到保留此顺序的方法,尝试使用不同库的一些合并或更新命令,我现在 - 用于编辑属性 - 采用以下方式:
因此保留了初始订单。我知道当互联网连接中断时,丢失实体会有轻微的风险。 对于我刚刚写的应用程序,我不希望我的应用程序破坏用户最终想要维护的现有订单。
您的第二个声明,即Microsoft Azure Storage Explorer默认显示"其他"按字母顺序排列的列似乎并非绝对正确。如果它们以上述方式存储,则默认按此顺序显示。查看我的Table screenshot。
答案 1 :(得分:0)
我认为Azure表存储中的列没有订单,请不要依赖它。 Azure表存储服务根本不关心代码中定义的属性名称的顺序。
请注意,Microsoft Azure存储资源管理器只返回分区键+ RowKey +时间戳+按字母顺序排列的其他列。