基于阅读Nullable Types,我理解将Nullable
用于数据库中可能为null的基本类型是正确的。
是否有必要对对象使用?
(Nullable)类型?
示例:
public DateTime? DateCreated {get; set; }
或
public DateTime DateCreated {get; set; }
答案 0 :(得分:1)
你的例子是正确的。您需要DateTime?
让ORM(比如NH)将其视为可空类型。对于您不需要放置问号的对象。
另外,在旁注上,问号T?是Nullable<T>
的别名。编译器会将T?
翻译为Nullable<T>
。如果需要证明,可以在调试器上检查:)
答案 1 :(得分:0)
在您的示例中,Nullable<T>
有效,因为DateTime不是引用类型。但是,对于对象(以及从对象派生的类型),您不能使用Nullable<T>
,因为编译器会抛出错误;见:C# nullable string error