Auf das Unternehmen Einfügen:Azure Table String Einheit
{
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\'"' }
}
Beachten Sie, dass die filename
der abgerufenen Einheit hat keine Eigenschaft '$': 'Edm.String'
Wenn die retrieveEntity()
:
{
PartitionKey: { _: '[email protected]', '$': 'Edm.String' },
RowKey: { _: 'a31d564b-20bc-4721-8b76-57d124967987', '$': 'Edm.String' },
filename: { _: 'file-foo', '$': 'Edm.String' }
}
es wird als abgerufen Option autoResolveProperties
wird gesetzt, dann erhält filename
die Eigenschaft '$': 'Edm.String'
Allerdings wäre es sicherer, die autoResolveProperties
Option zu vermeiden, da die documentationThe logic for returning entity types can get complicated
erwähnt.
Die App benötigt keine automatische Erkennung von Eigenschaften. Es muss nur den identischen Typ abgerufen werden, der explizit eingefügt wurde (Edm.String
).
Ist dies ohne Einstellung autoResolveProperties
möglich?
Dank [@Gary Liu] (http://stackoverflow.com/users/4989668/gary-liu-msft), habe ich es ausprobiert. Technisch funktioniert es, aber es bedeutet auch zusätzlichen Code, um alle Eigenschaften-Namen zu behandeln - nicht so gut für den Quellcode, denkst du nicht? Eine Umgehungslösung besteht derzeit darin, 'typeof _' zu erkennen, wenn '$' fehlt und feststellt, ob es sich um eine Zeichenkette handelt. Ich denke, es ist ähnlich zu tun, was "autoResolveProperties" tut. Vielen Dank für Ihre Antwort und die Links. –