我試圖將數據插入到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