如何在Azure表存储中保留空属性?

时间:2019-07-05 22:09:56

标签: azure-storage data-annotations azure-table-storage azure-data-factory json-deserialization

我正在尝试通过Azure数据工厂v2将一些json数据下载到SQL DB。我将数据存储在Azure表字段中作为中间步骤。但是,源json中的某些属性可能为null,但我仍然希望将它们保留为azure表中具有空值的列,以简化以后到SQL DB表的列映射。

我在文档中阅读了此内容:

  

表服务不保留属性的空值。查询实体时,以上属性类型都是不可为空的。编写实体时,上述属性类型都可以为空,并且对具有空值的任何属性进行处理,就好像有效负载中不包含该属性一样。

我尝试添加一个像[DefaultValue(null)]这样的DefaultValueAttribute,但是不起作用。

此外,向属性添加默认值不起作用

public string streetName { get; set; } = "None";

有没有办法我仍然可以维护null属性?

1 个答案:

答案 0 :(得分:0)

据我了解,Azure存储表本身没有架构。

如果在第一行中,将1插入列A,将2插入列B, 然后在第二行中,将3插入columnA,将4插入columnC。 然后,如果尝试使用ADF或azure Storage Explorer预览数据,则第一行的columnC将为空,第二行的columnB将为空。

因此,要拥有该空列,似乎您只需要为该列设置一个具有空值的行即可。

另一种避免此问题的方法:也许您可以考虑使用azure blob存储作为中间步骤? ADF支持将数据从天蓝色的blob存储直接处理到天蓝色的sql。而且azure blob存储可以存储json文件。