Windows Azure Table Storage 解决 Guid 查询问题

在使用 Windows Azure Table Storage 的 CloudTableClient 对Azure 进行数据查询时,会发现在自定义类的Guid类型始终无法去成功查询出数据,对比发现 Guid 值是一致的,最初代码如下:

  public UserEntity GetUserByToken(string token)
        {

            var table = AzureTableContext.CloudTableClientContext.GetTableReference(UserEntity.TableName);
            var query =
               new TableQuery<UserEntity>()
                   .Where(TableQuery.GenerateFilterCondition(
                       "Token",
                       QueryComparisons.Equal,
                       token));
           return table.ExecuteQuery(query).FirstOrDefault();
        }

修改 TableQuery.GenerateFilterCondition 为 TableQuery.GenerateFilterConditionForGuid,修改后代码如下:

 public UserEntity GetUserByToken(string token)
        {
            var table = AzureTableContext.CloudTableClientContext.GetTableReference(UserEntity.TableName);
            var query =
               new TableQuery<UserEntity>()
                   .Where(TableQuery.GenerateFilterConditionForGuid(
                       "Token",
                       QueryComparisons.Equal,
                       Guid.Parse(token)));

            return table.ExecuteQuery(query).FirstOrDefault();
        }

最终得以通过Guid查询数据

posted @ 2016-03-08 10:21  Pirate_Q  阅读(478)  评论(0编辑  收藏  举报