Windows Azure Table Storage 解决 Guid 查询问题

时间:2021-11-27 07:10:20

在使用 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查询数据