如何将默认值分配给Azure存储表的表实体中的DateTime属性。我试图下面的代码,但我无法设置值(插入时抛出从Azure表错误,因为DateTime采取1/1/0001)。将默认值分配给Azure存储表的表实体中的DateTime属性
[DefaultValue(DateTime.Now]
public DateTime LastUpdate { get; set; }
如何将默认值分配给Azure存储表的表实体中的DateTime属性。我试图下面的代码,但我无法设置值(插入时抛出从Azure表错误,因为DateTime采取1/1/0001)。将默认值分配给Azure存储表的表实体中的DateTime属性
[DefaultValue(DateTime.Now]
public DateTime LastUpdate { get; set; }
正如@Aravind在答案中所述,Azure表支持的DateTime
类型属性的最小值为Jan 1, 1600 UTC
。因此,将默认值设置为DateTime.MinValue
将导致错误。
对您而言,一种可能的解决方案是将此属性nullable
保留在您的模型中。
public DateTime? LastUpdate { get; set; }
因此,当没有提供值时,默认值为null。您需要删除上面注释中提到的DefaultValue
属性。
按照MSDN,可以在日期时间属性去值为“64位值表示为协调世界时(UTC),支持的日期时间范围从午夜12点,1601年1月开始AD(CE),UTC。范围在9月9日结束。“
所以你不能指定DateTime.MinValue。可以存储的最低值是新的DateTime(1601,1,1)
即使Datetime不允许null在azure表中,throwing不能为null错误。 – Ram
你能用你正在使用的代码更新你的问题吗?我在Azure表中使用了可空的日期/时间字段,它当然是允许的。我的猜测是,你的代码正在发生其他事情。 –