Mobile azure移动服务查询上的JSON转换器
Azure Mobile中我的一个表有一个定义为Number的列。在客户端,列映射到枚举。我有一个JSON转换器,它将枚举值封送到int(下面的代码) 请注意where子句,它选择完成状态为NotCompleted(枚举列表中的值为0)的项 在后端,查询被转换为字符串,而不是使用JSON转换器应该提供的数字 下面是query.getComponents()的内容 我预计查询将利用JSON转换器将枚举转换为数字。为什么它不这样做?我应该怎么做才能让它工作 多谢各位Mobile azure移动服务查询上的JSON转换器,mobile,azure,json.net,Mobile,Azure,Json.net,Azure Mobile中我的一个表有一个定义为Number的列。在客户端,列映射到枚举。我有一个JSON转换器,它将枚举值封送到int(下面的代码) 请注意where子句,它选择完成状态为NotCompleted(枚举列表中的值为0)的项 在后端,查询被转换为字符串,而不是使用JSON转换器应该提供的数字 下面是query.getComponents()的内容 我预计查询将利用JSON转换器将枚举转换为数字。为什么它不这样做?我应该怎么做才能让它工作 多谢各位 class CompletedS
class CompletedStateConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return objectType == typeof(CompletedState);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.Null)
return CompletedState.NotCompleted;
int intVal = serializer.Deserialize<int>(reader);
CompletedState gameCompleted = (CompletedState)intVal;
return gameCompleted;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
CompletedState gameCompleted = (CompletedState)value;
int number = (int)gameCompleted;
serializer.Serialize(writer, number);
}
}
data = await App.GameTable
.Take(15)
.OrderByDescending(g => g.LastMoveTime)
.Where(g => g.Completed == CompletedState.NotCompleted)
.ToListAsync();
{
"filters":
{
"operator":"And",
"left":{"queryString":"(Completed eq 'NotCompleted')","args":[],"type":"LiteralExpression"},
"right":
{
"operator":"Or",
…removed
"type":"BinaryExpression"
},
"type":"BinaryExpression"
},
"selections":[],
"projection":null,
"ordering":{"LastMoveTime":false},
"skip":null,
"take":15,
"table":"Game",
"includeTotalCount":false,
"version":4
}