C# ORM对象可为空

C# ORM对象可为空,c#,orm,nullable,C#,Orm,Nullable,通过阅读,我了解到对数据库中可能为null的基元类型使用Nullable是合适的 对象是否需要使用?(可为空)类型 例如: public DateTime? DateCreated {get; set; } 或 在您的示例中,Nullable是有效的,因为DateTime不是引用类型。但是,对于对象(以及从对象派生的类型),不能使用Nullable,因为编译器将抛出错误;请参阅:您的示例是正确的。您需要DateTime?让ORM(比如NH)将其视为可空类型。对于物体,你不需要打问号 另外,在旁

通过阅读,我了解到对数据库中可能为null的基元类型使用
Nullable
是合适的

对象是否需要使用
(可为空)类型

例如:

public DateTime? DateCreated {get; set; }


在您的示例中,
Nullable
是有效的,因为DateTime不是引用类型。但是,对于对象(以及从对象派生的类型),不能使用
Nullable
,因为编译器将抛出错误;请参阅:

您的示例是正确的。您需要
DateTime?
让ORM(比如NH)将其视为可空类型。对于物体,你不需要打问号


另外,在旁注中,问号T?是可为空的
的别名。编译器将
T?
转换为
Nullable
。如果需要证明,可以在调试器上检查此项:)

更正:对于数据库中可能为null的值类型,可以使用
null
。这包括,除其他外,
DateTime
(和
DateTimeOffset
)。
 public DateTime DateCreated {get; set; }