1. 程式人生 > >Npoco 建立Model時遇到DateTime型別預設值為空時該怎麼寫

Npoco 建立Model時遇到DateTime型別預設值為空時該怎麼寫

一般來說不用這種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