Nullable DateTime vs.依赖于默认值(DateTIme)

时间:2013-10-30 21:09:30

标签: c# sql-server datetime ef-code-first nullable

我的C#类有一个日期/时间属性,我将使用Code First映射到SQL Server数据库中的列。此日期永远不会超前或接近默认值(DateTime)。如果我将该属性键入System.DateTime,那么我始终可以使用MyProp == default( DateTime )检查未设置的值。

是否有令人信服的理由是否将此属性键入(可为空)DateTime?而不是(不可为空)DateTime?为什么呢?

1 个答案:

答案 0 :(得分:1)

在我认为与某个记录ID相关时,某些类型的哨兵值(如整数)是有意义的。当零是合法值时(因为值也可能是负值),它就没有意义了。日期总是有意义所以null就像“我们不在何时”的价值一样提供更多信息。此外,我认为它使“给我所有记录,我们没有日期”查询看起来更清洁。