iT邦幫忙

0

.net core _db.SaveChanges() 要如何接受封裝後的modle

  • 分享至 

  • xImage

想請問各位大大們
我預期將我的Update寫在個別的Class裡面像以下這樣https://ithelp.ithome.com.tw/upload/images/20221118/201434520GXlnZnhey.png

然後在外面使用這個Update並且SaveChanges()https://ithelp.ithome.com.tw/upload/images/20221118/20143452sdFQFHX7jO.png
雖然這樣不會報錯,但是資料庫數據卻不會更新,請問這是因為我注入引用的方式錯誤嗎?還是什麼原因造成的,以下是我注入的方式https://ithelp.ithome.com.tw/upload/images/20221118/20143452uhhF5e2XDq.png
再請大家指點我一下,謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
Samuel
iT邦好手 1 級 ‧ 2022-11-19 14:52:18

1.檢查看看是否傳進去的model真的有前後產生變化
2.檢查db服務再起出服務註冊時候寫法有無異常
3.增加一個這個if判斷DbContext.ChangeTracker.HasChanges()
https://stackoverflow.com/questions/11503797/entity-framework-update-check-if-the-record-has-changed
4.將ef運行產生的SQL可能打印出來做確認

柴柴 iT邦新手 5 級 ‧ 2022-11-20 22:11:30 檢舉

報告!!我加了以下這行就可以順利SaveChanges()https://ithelp.ithome.com.tw/upload/images/20221120/20143452Jq4HRm2VSp.png
這是為什麼呢?
那假設我要先Insert 後在 Update 也是只能這樣寫嗎

Samuel iT邦好手 1 級 ‧ 2022-11-21 06:39:43 檢舉

喔沒仔細看原本以為你update底層是做ef的update
看起來是單純做model屬性指定
如果直接call ef的update也是可以
另一種就是用你這方式

我要發表回答

立即登入回答