Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 强制Azure表存储TableResult到类_C#_Azure_Azure Storage_Azure Table Storage - Fatal编程技术网

C# 强制Azure表存储TableResult到类

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

我正在编写一个从Azure表存储服务检索实体的方法。我需要以类型User而不是TableResult返回实体。以下代码将编译,但始终返回Null:

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;