На вставке объект:Azure Table строка объект
{
PartitionKey: { _: '[email protected]', '$': 'Edm.String' },
RowKey: { _: 'a31d564b-20bc-4721-8b76-57d124967987', '$': 'Edm.String' },
filename: { _: 'file-foo', '$': 'Edm.String' }
}
он получает извлекаться как:
{
PartitionKey: { '$': 'Edm.String', _: '[email protected]' },
RowKey: { '$': 'Edm.String', _: 'a31d564b-20bc-4721-8b76-57d124967987' },
filename: { _: 'file-foo' },
Timestamp: { '$': 'Edm.DateTime', _: 2016-07-25T07:31:11.117Z },
'.metadata':
{ metadata: 'http://127.0.0.1:10002/devstoreaccount1/$metadata#UserJobs/@Element',
etag: 'W/"datetime\'2016-07-25T07%3A31%3A11.117Z\'"' }
}
Обратите внимание, что собираемая субъекта filename
не обладает свойством '$': 'Edm.String'
, если retrieveEntity()
опция autoResolveProperties
установлена, то filename
получает объект '$': 'Edm.String'
Однако, было бы безопаснее избегать опции autoResolveProperties
, так как documentation упоминает The logic for returning entity types can get complicated
.
Приложение не нуждается в автоматическом обнаружении свойств. Нужно только получить идентичный тип, который явно вставлен (Edm.String
).
Возможно ли это без установки autoResolveProperties
.
Спасибо [@Gary Liu] (http://stackoverflow.com/users/4989668/gary-liu-msft), я попробовал. Технически это работает, но также означает дополнительный код для обработки всех имен свойств - не так ли поддерживаемый исходный код, не так ли? На данный момент обходным путем является обнаружение 'typeof _' всякий раз, когда' $ 'отсутствует и определяет, есть ли его строка. Я думаю, что это похоже на то, что делает autoResolveProperties. Спасибо за ваш ответ и ссылки. –