CouchbaseClient.StoreJson не хранит свойство Id
3-й утверждать не удается. Это ошибка CouchbaseClient?
private class StoreJsonTest
{
public int Id { get; set; }
public string StrProp { get; set; }
public int IntProp { get; set; }
}
[Test]
public void CouchBase()
{
var storeJsonTest = new StoreJsonTest() {Id = 1, StrProp = "Test str prop", IntProp = 10};
string key ="testStoreJson"+ Guid.NewGuid().ToString();
CouchbaseClient couchbaseClient = new CouchbaseClient();
couchbaseClient.StoreJson(StoreMode.Add, key, storeJsonTest);
var extractedJson = couchbaseClient.GetJson<StoreJsonTest>(key);
Assert.That(extractedJson.StrProp == storeJsonTest.StrProp);
Assert.That(extractedJson.IntProp == storeJsonTest.IntProp);
Assert.That(extractedJson.Id == storeJsonTest.Id);
}
Как мне сохранить свойство Id для couchbase?
1 ответ
Решение
Добавьте следующую строку где-нибудь в запуске вашего приложения:
CouchbaseClientExtensions.JsonSerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
Средство разрешения контракта по умолчанию является внутренней реализацией, которая сериализует все, кроме свойств идентификатора.
'CamelCasePropertyNamesContractResolver'
исходит от Newtonsoft.Json.Serialization
Пространство имен.