【问题标题】:Issue with setting default Value for DateTime [duplicate]为 DateTime 设置默认值的问题 [重复]
【发布时间】:2018-12-04 22:18:25
【问题描述】:

我有一个无法为 DateTime 设置 [DefaultValue] 的模型,该对象用于从 powershella 脚本生成用户列表。当我没有默认值并且 powershell 返回 null 时,这会导致错误。 在 null 的情况下,我想将日期设置为 01.01.1990 00:00:00

public class user
        {
            [DefaultValue("")]
            public string Name { get; set; }

            //[DefaultValue( )]
            public DateTime PasswordLastSet { get; set; }
        }

【问题讨论】:

  • 让 DateTime 可以为空不是更好吗?首次设置密码前,初始值可能为空。公共日期时间? PasswordLastSet { 获取;放; }
  • [System.ComponentModel.DefaultValue(typeof(DateTime), "1900-01-01")]怎么样

标签: c# asp.net-mvc default-value


【解决方案1】:

为什么不使用构造函数?

public class user
{
    public string Name { get; set; }

    public DateTime PasswordLastSet { get; set; }

    public user()
    {
        PasswordLastSet = DateTime.MinValue;
    }
}

【讨论】:

  • 如果你使用 C# 6.0+,你可以使用属性初始化器:public DateTime PasswordLastSet { get; set; } = DateTime.MinValue;
  • 您不能在 SQL Server DateTime 字段中使用 DateTime.MinValue,因为 SQL Server 的 MinValue 为 1753
  • @vasily.sib 那又怎样,正确的方法是通过构造函数,而不是属性
  • 如果这将链接到 SQL DateTime 列,您应该使用 System.Data.SqlTypes.SqlDateTime.MinValue
  • @AfnanAhmad 你知道,有DateTime2,对吧?
猜你喜欢
  • 2014-01-22
  • 2014-10-09
  • 2011-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-16
  • 1970-01-01
  • 2020-10-23
相关资源
最近更新 更多