c# - 可空 DateTime 与依赖默认值 ( DateTIme )

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

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

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

最佳答案

在我看来,某种类型的标记值(如整数)在与记录 ID 相关时是有意义的。当零是合法的值(value)时(因为值(value)也可能是负数),它就没有意义了。日期总是有意义的,因此 null 作为“我们不知道什么时候”的值更能提供信息。我还认为它使“给我所有没有日期的记录”查询看起来更清晰。

关于c# - 可空 DateTime 与依赖默认值 ( DateTIme ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19693850/

相关文章:

c# - ASP.Net Mvc : Cannot access my models namespace from my view

sql-server - 两个 SQL Server 层/表的空间相交

sql-server - #temptable 和 ##TempTable 之间的区别?

c# - 如何在 SQL Server 2008 中存储和检索 .pdf、.exe 文件

c# - Azure Cosmos 数据库引发套接字异常

C# CSV Filehelpers 比较同一文件中的两行,添加和删除行

c# - 我如何在 python 中反序列化 C# datetime?

python - 将 datetime.date 对象与 datetime.datetime 对象中的时间字符串组合

Perl:给定年份和周数,我如何获得该周的第一个日期?

c# - 如何使用 MySqlParameter 有条件地将列设置为其默认值?