在ASP.NET MVC 5中使用默认DateTime的正确方法

时间:2017-04-14 17:26:53

标签: asp.net asp.net-mvc

我有一个SQL Server数据库。我的一个表有一个SQL <?xml version="1.0" encoding="UTF-8" ?> <nodes> <node> <name>NODE 1</name> <value1> <value1>NODE 1 VALUE 1</value1> </value1> <nodes> <node> <name>NODE 1 CHILD</name> <value1>NODE 1 CHILD VALUE 1</value1> </node> </nodes> </node> <node> <name>NODE 2</name> <value1>NODE 2 VALUE 1</value1> </node> </nodes> 列。

。创建记录时不必输入此列,但后面应该修改。

我知道Elements elements = data.select("nodes > node"); 不可为空。 DATETIME的默认值为1/1/0001,而SQL Server的最小值为1/1/1753。

Why when I insert a DateTime null I have "0001-01-01" in SQL Server?

所以,我的问题是这样做的正确方法是什么?如何将DateTime设置为SQL Server的最小值(1/1/1753)。

datetime2

1 个答案:

答案 0 :(得分:0)

如果您希望日期不可为空,那么是的,您所拥有的是最好的方式。 EF总是将值传递给该字段,所以如果不这样做,它将尝试传入1/1/0001并输出错误。

您不必每次都定义它,而是可以创建一个静态类:

public static DateTime MinDate()
{
   return new DateTime(1753, 1, 1);
}

如果你想标准化它。

另一个选项是使列可以为空,并且无论何时查询日期,当SQL返回时,SQL都会返回1/1/1753。