2014-12-26 3 views
1

Третье утверждение не выполняется. Это ошибка CouchbaseClient?CouchbaseClient.StoreJson не сохраняет свойство Id

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.

Смежные вопросы