Npoco 建立Model時遇到DateTime型別預設值為空時該怎麼寫
阿新 • • 發佈:2019-01-03
一般來說不用這種ORM的話不會遇到這樣的問題,但是Npoco裡新增時每一個欄位都是要顧及到的,也就是說每個欄位都要給定值。
當遇到DateTime型別的欄位,而當時又不需要給它值或者賦值了反而達不到預期的效果時,就需要改一改了。
有人說可以直接用String型別就好了呀,但是為了安全起見哈,我們還是固定一下型別比較好,不要給它那麼大的範圍。
栗子如下:
有電話表,結構如下:
現在我們要新增一個電話,但是它暫時不需要填寫停用這個欄位,但是在Npoco裡新增一條資料必須給每個欄位賦值,我們在建立Model的時候就可以這樣寫:
[TableName("Call")] [PrimaryKey("Id")] public class Call { [Ignore] public int IdIndex { get; set; } [Column] public virtual int Id { get; set; } /// <summary> /// 手機 /// </summary> [Column] public virtual string Call { get; set; } [Column] public virtual string Key { get; set; } /// <summary> /// 聯絡人標識 /// </summary> [Column] public virtual string ContactKey { get; set; } /// <summary> /// IsStop /// </summary> [Column] public virtual bool IsStop { get; set; } /// <summary> /// 建立時間 /// </summary> [Column] public virtual DateTime CreateDate { get; set; } /// <summary> /// 停用時間(修改時間) /// </summary> [Column] public virtual DateTime? StopDate { get; set; } }
在停用時間這裡我們給它設定為可空型別,加個問號,在新增的時候不賦值的話可以發現這個欄位為null
同時資料也可以新增進去而不會報錯。
如果不這樣寫,報錯時就會顯示:
“出現錯誤”
“SqlDateTime 溢位。必須介於 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之間。”
報這種錯的對照著看一下哈。
End