Я использую приложение Azure Function. В приложении я использую пакет Microsoft.Azure.DocumentDB v2.9.2 для работы с CommosDB. Моя сущность:
public abstract class Entity
{
[JsonProperty("id")]
public string id { get; set; }
}
public class MyLog : Entity
{
[JsonProperty("createDate")]
public DateTime CreateDate { get; set; }
}
Когда я сериализую MyLog
с Newtonsoft.Json
, я вижу, что свойство CreateDate
имеет стиль верблюжьего регистра и выглядит точно так же, как упомянуто в JsonProperty
, но когда я записываю свою сущность в CosmosDB с помощью метода CreateDocumentAsync
, я вижу, что CreateDate
теперь имеет регистр pascal и выглядит как CreateDate
. Хочу отметить, что ContractResolver
не используется. Я не могу найти другого места, где случай паскаля можно применить к сериализации сущностей.
[ОБНОВЛЕНИЕ]
Когда я запускаю тесты, я вижу, что именование свойств в БД правильное (с учетом JsonProperty). Это неправильно, только когда azure func пишет в БД
var policy = new ConnectionPolicy();
policy.PreferredLocations.Add("Germany North");
documentClient = new DocumentClient(endPoint, key, policy);
await documentClient.OpenAsync();
...
await documentClient.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName), document);
[/ОБНОВЛЕНИЕ]
Может кто-нибудь подсказать, какие еще варианты могут привести к такому поведению?
DocumentClient
в дополнение к POCO, которые вы подробно описали? - person Oliver   schedule 31.03.2020