How to tell DocumentDB SDK to use camelCase during linq query?
考虑到存储在用户集合中的文档
1 2 3 4 5 | public class User { public string Id { get; set; } public string UserName { get; set; } } |
使用以下json.net设置:
1 2 3 4 5 6 7 | JsonConvert.DefaultSettings = () => { return new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), }; }; |
号
当我以这样的方式查询Linq时:
1 2 3 4 5 6 7 | var t = _client.CreateDocumentQuery<User>(_collection.SelfLink) .Where(u => u.UserName =="user1").AsDocumentQuery().ExecuteNextAsync(); t.Wait(); var users = t.Result; var user = users.FirstOrDefault(); |
如何告诉documentdb sdk使用camel大小写映射对象的属性名,类似于json.net?
documentdb linq提供程序未获取jsonconvert.defaultsettings。通常,您可以使用defaultsettings来控制camelcase,但是对于那些希望在linq where子句中使用的属性,必须使用DTO上的jsonproperty属性显式设置名称。
1 2 3 4 5 6 7 | public class User { public string Id { get; set; } [JsonProperty("userName")] public string UserName { get; set; } } |
虽然有点乏味,而且是一个很好的bug源,但它似乎是您目前唯一的选择。