如何为Azure存储表的表实体中的DateTime属性分配默认值。
我正在尝试下面的代码,但是我无法设置值(插入时从Azure表中抛出错误,因为DateTime占用了1/1/0001)。
[DefaultValue(DateTime.Now]
public DateTime LastUpdate { get; set; }
答案 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
属性。