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