簡體   English   中英

實體框架未聲明datetime.now為null

[英]Entity Framework not claiming datetime.now is null

這是我的代碼:

UVCUpdate update = new UVCUpdate();
update.CurrentDate = DateTime.Now;
_context.UVCUpdates.Add(update);

_context.SaveChanges();

現在,雖然這樣說,但我得到了一個內在的例外:

無法將值NULL插入“CurrentDate”列,表'bLinked.dbo.BlackbookUpdateUVC'; 列不允許空值。 INSERT失敗。

如果我在此代碼之前輸出DateTime.Now,則輸出:

2016年9月15日下午7:26:35

我在db中將CurrentDate的數據類型設置為datetime,在類中將其設置為DateTime。 既不允許空值,但DateTime.Now不應該為空嗎?

當EF模型和數據庫之間所謂的“存儲生成模式”不匹配時,幾乎總會發生這種情況。 如果model列具有存儲生成的Identity或Computed模式 - 這意味着EF將確保數據庫在插入或更新時自動提供這些值,並且不需要將它們包含在INSERT或UPDATE語句中。 缺少值將具有默認的NULL值,並且如果此列在數據庫中同時不可為空,並且實際上沒有計算或標識 - 則會出現錯誤。

我很抱歉,我覺得自己像個白痴。 謝謝Leopard。

我去獲取UVCUpdate類來向他展示,並意識到當我從另一個類復制該類時,我不小心在CurrentDate的類中留下了[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 因此,它可能嘗試向SQL發送空值,因此SQL將創建一個ID,但該字段設置為不允許空值。 CurrentDate不應該是一個ID,所以我刪除它,現在它的工作原理...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM