iT邦幫忙

0

db.SaveChange()驗證失敗

https://ithelp.ithome.com.tw/upload/images/20201112/20132299fci9TlywsJ.png

不好意思,想請問一下這是什麼意思/images/emoticon/emoticon33.gif 有甚麼辦法可以解決嗎?

下圖是詳細資料
https://ithelp.ithome.com.tw/upload/images/20201112/20132299DPGv5d7PJS.png

優悠 iT邦新手 3 級 ‧ 2020-11-13 08:53:24 檢舉
有些欄位不能為NULL,你可能沒塞數值,參考第一個回答得去試試吧!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
w4560000
iT邦研究生 5 級 ‧ 2020-11-12 22:40:42

這個錯誤是你DB欄位有更新時,但你後端的edmx模型 model沒有更新,新增時才噴錯

你可以先用以下語法 把db.SaveChange() 包在try catch裡,先找出是甚麼欄位沒有更新導致的錯誤,在到edmx 選 '從資料庫更新模型' 來更新與table對應的Class。

try
{
   .....
   db.SaveChange();
}
catch (Exception ex) 
{
  string error = "";

  if (ex is DbEntityValidationException)
  {
    (ex as DbEntityValidationException).EntityValidationErrors.ToList().ForEach(x      =>
      { x.ValidationErrors.ToList().ForEach(y =>
         {
            error += $@"model PropertyName: {y.PropertyName}, model ErrorMessage:                      {y.ErrorMessage} \n";
         });
      });
  }
}

我要發表回答

立即登入回答