根据阅读Nullable Types,我了解Nullable
在数据库中使用可能为 null 的原始类型是正确的。
对象是否需要使用?
(Nullable) 类型?
例子:
public DateTime? DateCreated {get; set; }
或者
public DateTime DateCreated {get; set; }
根据阅读Nullable Types,我了解Nullable
在数据库中使用可能为 null 的原始类型是正确的。
对象是否需要使用?
(Nullable) 类型?
例子:
public DateTime? DateCreated {get; set; }
或者
public DateTime DateCreated {get; set; }
你的例子是正确的。您需要DateTime?
让 ORM(比如 NH)将其视为可空类型。对于不需要打问号的对象。
另外,在旁注中,问号 T? 是 的别名Nullable<T>
。编译器T?
会将Nullable<T>
. 如果你想要一个证明,你可以在调试器上检查这个:)
在您的示例中,Nullable<T>
有效,因为 DateTime 不是引用类型。但是,对于对象(以及从对象派生的类型),您不能使用Nullable<T>
,因为编译器会抛出错误;请参阅:C# 可为空的字符串错误