Я вижу некоторое странное поведение, сохраняющееся в DocumentDB. Я начал сохранять документы, используя простой старый класс, который выглядел так:
public class Person
{
public string Name;
public int Age;
}
Я сохранил эти документы следующим образом:
var person = new Person { ... };
client.CreateDocumentAsync(myCollectionLink, person);
Все прошло отлично. Свойства были сохранены точно с именами в классе. Затем я понял, что мне нужен документ SelfLink для выполнения обновлений и удаления. "Ах", подумал я. "Я просто выйду из документа, например:
public class Person: Microsoft.Azure.Documents.Document
{
public string Name;
public int Age;
}
Однако, к моему большому удивлению, когда я сделал это изменение, новые документы были созданы полностью пустыми, за исключением свойства "id", назначенного самим DocumentDB.
Я дважды проверял несколько раз. Получение из документа препятствует сохранению моих пользовательских свойств в документе...
... если я явно не украшу каждый с помощью [JsonProperty], например:
public class Person: Document
{
[JsonProperty(PropertyName="name")]
public string Name;
[JsonProperty(PropertyName="age")]
public int Age;
}
Затем он снова работает (используя, конечно, новые, более подходящие для JSON имена свойств camelCase). И, после извлечения, объекты заполняются свойством SelfLink, которое мне нужно для обновлений и удалений. Все хорошо.
По моим вопросам... Почему это произошло? Я делаю что-то неправильно, получая документ?. Ваш отзыв будет очень признателен.