C# 强制Azure表存储TableResult到类
我正在编写一个从Azure表存储服务检索实体的方法。我需要以类型User而不是TableResult返回实体。以下代码将编译,但始终返回Null:C# 强制Azure表存储TableResult到类,c#,azure,azure-storage,azure-table-storage,C#,Azure,Azure Storage,Azure Table Storage,我正在编写一个从Azure表存储服务检索实体的方法。我需要以类型User而不是TableResult返回实体。以下代码将编译,但始终返回Null: var partitionKey = "user"; var retrieveOperation = TableOperation.Retrieve<TableEntity>(partitionKey, userName); var result = _table.Execute(retr
var partitionKey = "user";
var retrieveOperation = TableOperation.Retrieve<TableEntity>(partitionKey, userName);
var result = _table.Execute(retrieveOperation);
if (result == null)
{
return null;
}
return result.Result as User;
var partitionKey=“user”;
var retrieveOperation=TableOperation.Retrieve(分区键,用户名);
var result=_table.Execute(retrieveOperation);
如果(结果==null)
{
返回null;
}
返回结果。结果作为用户;
我假设这是因为从TableResult到用户的转换由于某种原因不起作用。像(用户)结果一样强制转换它。结果实际上在运行时抛出一个错误。我见过一个在实体列表上使用Linq的示例,但是如何转换单个结果呢 如果您的实体
用户
继承自表格实体
(或实现ITableEntity
):
您可以指定结果的类型:
var retrieveOperation = TableOperation.Retrieve<User>(partitionKey, userName);
谢谢你,托马斯!那是丢失的钥匙。我完全忽略了代码的这一部分。我实际上使用的是Rory Primrose提供的EntityAdapter,因此我需要指定为返回类型,但这就成功了。请参阅。@AndrewBSchultz,您甚至不需要使用这个类,这里有一个
DynamicTableEntity
类:。
var retrieveOperation = TableOperation.Retrieve<User>(partitionKey, userName);
var partitionKey = "user";
var retrieveOperation = TableOperation.Retrieve<User>(partitionKey, userName);
var result = _table.Execute(retrieveOperation);
if (result == null)
{
return null;
}
return result.Result as User;
var partitionKey = "user";
// The default result type is DynamicTableEntity
var retrieveOperation = TableOperation.Retrieve(partitionKey, userName);
var result = _table.Execute(retrieveOperation);
if (result == null)
{
return null;
}
return result.Result as DynamicTableEntity;