Biorąc pod uwagę dokument { "userName": "user1" }
przechowywany w kolekcji użytkownika, a po User
klasa:Jak poinformować pakiet SDK programu DocumentDB, aby używał polecenia camelCase podczas kwerendy linq?
public class User
{
public string Id { get; set; }
public string UserName { get; set; }
}
z następującymi ustawieniami Json.NET:
JsonConvert.DefaultSettings =() =>
{
return new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
};
};
Podczas kwerendy z Linq jako takie:
var t = _client.CreateDocumentQuery<User>(_collection.SelfLink)
.Where(u => u.UserName == "user1").AsDocumentQuery().ExecuteNextAsync();
t.Wait();
var users = t.Result;
var user = users.FirstOrDefault();
user
ma wartość null. Zmiana dokumentu na paskarstwo lub POCO w celu użycia obudowy wielbłąda rozwiązuje problem. Oczywiście nie chcę żadnych z nich, ponieważ chcę, aby moje obiekty JSON i obiekty C# były "standaryzowane".
Jak mogę powiedzieć SDK DocumentDB, aby odwzorować nazwy właściwości obiektu za pomocą obudowy wielbłąda, podobnie jak JSON.net?
Czy [ta odpowiedź] (http://stackoverflow.com/a/25879197/272109) rozwiązuje problem? Nie jest to dokładnie duplikat, ale sądzę, że opublikowana odpowiedź obejmuje to, czego szukasz. –