通过Visual Studio,我使用了Entity Framework来创建与SQL Server Tables相对应的类。 在SQL Server表中,某些字段被定义为" datetime"默认值为(getutcdate())。 映射到数据库表datetime字段的C#类中的Datetime字段附加了"?"
谁能告诉我这是什么"?"意味着如果我需要做任何事情来防止一些迫在眉睫的灾难? 感谢任何建议。
答案 0 :(得分:0)
的DateTime?是Nullable<DateTime>
的语法糖,这意味着该值可以存储日期时间或null。常规DateTime
无法存储null,因此开发人员可能会使用类似DateTime.Min
的内容来表示&#34;没有值集&#34; (但不好的做法)。
您生成的类有DateTime?
的原因很可能是因为您的列没有NOT NULL
约束(与默认值不同)。即由于服务器CAN在EntityDoB
字段中存储NULL,因此生成的类必须能够在代码中处理NULL日期时间。
代码不会失败,并且(假设您可以有一个非指定日期)是正确的。您只需要考虑Nullable将如何影响您的代码,并注意Entity-Framework不尊重默认数据库列 - 如果C#知道该列,EF将指定一个值。