EF實體部分更新的問題


之前遇到只更新部分的問題:如前端修改用戶信息(不修改密碼),傳實體到后台,這個實體是沒有密碼,這樣一來要更新的話,得先去數據庫通過傳過來的實體的ID讀取這條記錄,然后將改動的部分填到查出來的記錄中,再更新回去。

邏輯是對的,但是用EF,會有個問題,查出來后是默認緩存在entity這個上下文(dbcontent)中的,所以直接更新會報錯,於是我就想辦法查詢的時候不緩存到上下文中,Asnotracking,先記錄下,遲點整理,單詞亂拼的,這個解決問題了。

但是,這樣一來又會出現效率的降低,本來已經緩存在上下文中的,同次請求,多次用到這個記錄的時候,數據庫讀取一次就行了,現在就是每次都要重新讀取。

今天,才發現,原來要避免之前這個錯誤很簡單,數據查出來——緩存在上下文中——實體屬性變更——更新上下文。完事兒,關鍵就是我們不是去更新實體了,而是更新這個上下文。dbContext.saveChange();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM