Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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 TableEntity展平方法不适用于;字节";数据类型_C#_Azure_Azure Storage_Azure Table Storage - Fatal编程技术网

C# Azure TableEntity展平方法不适用于;字节";数据类型

C# Azure TableEntity展平方法不适用于;字节";数据类型,c#,azure,azure-storage,azure-table-storage,C#,Azure,Azure Storage,Azure Table Storage,在尝试将数据对象插入到azure存储表中时,TableEntity.Flatte引发以下异常 System.Runtime.Serialization.SerializationException:不支持的类型:转换为EntityProperty期间遇到System.Byte。 数据对象包含不受支持的byte属性。当我从上游接收到这个数据对象时,我将得到一个新的类,复制所有属性,同时将字节属性更改为int 还有其他更好的选择吗? < p>可以考虑将字节转换为同一个类中的int属性,并用[IGNO

在尝试将数据对象插入到
azure存储表中时,
TableEntity.Flatte
引发以下异常

System.Runtime.Serialization.SerializationException:不支持的类型:转换为EntityProperty期间遇到System.Byte。

数据对象包含不受支持的
byte
属性。当我从上游接收到这个数据对象时,我将得到一个新的
,复制所有属性,同时将
字节
属性更改为
int


还有其他更好的选择吗?

< p>可以考虑将字节转换为同一个类中的int属性,并用[IGNORANGRONTUR]属性标记字节属性。

public class MyEntity : TableEntity
{
    public int MyPropertyInt { get; set; }

    [IgnoreProperty]
    public byte MyProperty
    {
        get
        {
            return (byte)this.MyPropertyInt;
        }

        set
        {
            this.MyPropertyInt = value;
        }
    }
}

可以考虑将字节转换为同一个类中的int属性,并用[IGONEXPROFICE]属性标记字节属性。< /P>

public class MyEntity : TableEntity
{
    public int MyPropertyInt { get; set; }

    [IgnoreProperty]
    public byte MyProperty
    {
        get
        {
            return (byte)this.MyPropertyInt;
        }

        set
        {
            this.MyPropertyInt = value;
        }
    }
}

字节数组是受支持的属性,但字节不是,这是正确的。此处列出了支持的类型,请检查执行转换的方法

一种解决方法是将字节属性转换为单个元素的字节数组。但我强烈建议您在github中打开一个bug以添加字节支持。这应该很容易添加

发送了一个pull请求,以向展平/转换回方法添加字节属性支持:

在等待上述请求合并到SDK时。我已经更新了我编写的原始nuget包,以支持字节类型和IEnumerable属性,如下所示:

你也应该能够使用它。这些方法与dn ConvertBack相同,但它们支持Byte和所有其他IEnumerable类型


更新:这在最新版本的SDK中已经修复。您仍然需要使用展平和ConvertBack方法,但可以使用最新版本写入和读取字节类型属性。

字节数组是受支持的属性,但您是对的,字节不是。此处列出了支持的类型,请检查执行转换的方法

一种解决方法是将字节属性转换为单个元素的字节数组。但我强烈建议您在github中打开一个bug以添加字节支持。这应该很容易添加

发送了一个pull请求,以向展平/转换回方法添加字节属性支持:

在等待上述请求合并到SDK时。我已经更新了我编写的原始nuget包,以支持字节类型和IEnumerable属性,如下所示:

你也应该能够使用它。这些方法与dn ConvertBack相同,但它们支持Byte和所有其他IEnumerable类型


更新:这在最新版本的SDK中已经修复。您仍然需要使用展平和ConvertBack方法,但可以使用最新版本写入和读取字节类型属性。

我没有使用TableEntity,我正在使用展平方法将数据对象直接转换为DynamicTableEntity我没有使用TableEntity,我正在使用展平方法将数据对象直接转换为DynamicTableEntity。另外,除了链接中的这些类型外,还支持复杂的属性类型(自定义类等)。这些复杂属性也可能有自己的复杂属性等,只要它们在对象树底部的结束节点属性是我上面发送的链接中的类型之一,展平方法将遍历并展平整个复杂对象,将结束节点属性转换为EntityProperty,以便将其写入表存储。除链接中的这些类型外,还支持复杂属性类型(自定义类等)。这些复杂属性也可能有自己的复杂属性等,只要它们在对象树底部的结束节点属性是我上面发送的链接中的类型之一,展平方法将遍历并展平整个复杂对象,将结束节点属性转换为EntityProperty,以便将其写入表存储。