Mobile azure移动服务查询上的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

Azure Mobile中我的一个表有一个定义为Number的列。在客户端,列映射到枚举。我有一个JSON转换器,它将枚举值封送到int(下面的代码)

请注意where子句,它选择完成状态为NotCompleted(枚举列表中的值为0)的项

在后端,查询被转换为字符串,而不是使用JSON转换器应该提供的数字

下面是query.getComponents()的内容

我预计查询将利用JSON转换器将枚举转换为数字。为什么它不这样做?我应该怎么做才能让它工作

多谢各位

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
}