根據閱讀Nullable Types,我明白對於在數據庫中可能爲null的基本類型使用Nullable
是正確的。對於ORM對象可爲空
對象是否需要使用?
(Nullable)類型?
實施例:
public DateTime? DateCreated {get; set; }
或
public DateTime DateCreated {get; set; }
根據閱讀Nullable Types,我明白對於在數據庫中可能爲null的基本類型使用Nullable
是正確的。對於ORM對象可爲空
對象是否需要使用?
(Nullable)類型?
實施例:
public DateTime? DateCreated {get; set; }
或
public DateTime DateCreated {get; set; }
在您的例子,Nullable<T>
是有效作爲日期時間是不是引用類型。但是,對於對象(以及從對象派生的類型),不能使用Nullable<T>
,因爲編譯器會引發錯誤;見:C# nullable string error
你的例子是正確的。您將需要DateTime?
讓ORM(比如NH)將它視爲可爲空的類型。對於你不需要放置問號的物體。
另外,在附註上,問號T?是Nullable<T>
的別名。編譯器會將T?
轉換爲Nullable<T>
。如果需要證明,你可以在調試器上檢查它:)
更正:對於在數據庫中可能爲null的值類型,使用'Nullable'是合適的。其中包括'DateTime'(和'DateTimeOffset')。 –