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