我试图将数据插入到Azure表中,但一切都转换为字符串。Azure表存储只支持字符串作为数据类型?
E.g.我将数字/布尔
var test={ PartitionKey : '4', RowKey : '2', foo: 4, bar: true };
tableService.insertEntity('mytable', test, ...);
但
回报
{ id: 'http://127.0.0.1:10002/devstoreaccount1/identid(PartitionKey=\'4\',RowKey=\'2\')',
link: 'identid(PartitionKey=\'4\',RowKey=\'2\')',
updated: '2012-12-12T10:26:44Z',
etag: 'W/"datetime\'2012-12-12T10%3A26%3A44.547Z\'"',
PartitionKey: '4',
RowKey: '2',
Timestamp: '2012-12-12T10:20:44.897Z',
foo: '4',
bar: 'true' }
我如何可以指定一个数据类型?
OK,只是,你可以指定
var test={ PartitionKey : '4', RowKey : '2',
foo: { '@': { type: 'Edm.Int32' }, '#': 4 } };
但是否有任何辅助功能自动添加类型的数据类型的SDK看到?
黑客:我发现如果你用正确类型的虚拟对象来种子表(使用htt p://azurestorageexplorer.codeplex.com/或类似的),然后后续插入将被正确键入(并且随后的插入错误类型将引发错误)。 – JcFx
有趣。我不知道表存储支持类似于模式的东西。 – laktak
您可以添加更多的字段到一个实体而不会导致错误(并且省略现有的字段),但是如果您已经有一个名为'test'的字段,并且其中包含一个bool,那么如果您有一个'invalid input'错误尝试将一个字符串(甚至'真')放入该字段。因此创建一个虚拟对象似乎创建了一种隐式模式。 – JcFx