将默认值分配给azure存储表

时间:2016-11-14 12:07:05

标签: azure azure-storage azure-table-storage

如何为Azure存储表的表实体中的DateTime属性分配默认值。

我正在尝试下面的代码,但是我无法设置值(插入时从Azure表中抛出错误,因为DateTime占用了1/1/0001)。

[DefaultValue(DateTime.Now]

public DateTime LastUpdate { get; set; }

2 个答案:

答案 0 :(得分:1)

作为Per msdn,datetime属性中的值可以是" 64位值,表示为协调世界时(UTC)。支持的DateTime范围从公元1601年1月1日午夜12点(UTC)开始。范围于9999年12月31日结束。"

因此您无法分配DateTime.MinValue。您可以存储的最低值是新的DateTime(1601,1,1)

答案 1 :(得分:1)

正如@Aravind在答案中所提到的,Azure Tables支持的DateTime类型属性的最小值为Jan 1, 1600 UTC。因此,将默认值设置为DateTime.MinValue将导致错误。

一种可能的解决方案是将此属性nullable保留在模型中。

public DateTime? LastUpdate { get; set; }

因此,当没有提供任何值时,默认值为null。您需要删除上面评论中提到的DefaultValue属性。