Entity Framework Core 強制 entity 更新至資料庫

Entity Framework Core 資料庫欄位自動加解密示範 這篇文章中有提到資料沒有變更時並不會寫入到資料庫中。

執行 SaveChanges 方法時因為 DbContext 沒有追蹤到變更,所以就直接忽略。不過有時候我們會希望就算看起來資料沒有變動也要寫入到資料庫中,例如利用 Entity Framework Core 更新時間、觸發 Trigger 等,那該怎麼讓 DbContext 追蹤到變更呢?

其實非常簡單,只要使用 Update 就可以強制將該實體標記為已修改(Modified):
    
var entity = _context.Users.First(x => x.Id == id);

_context.Update(entity);
_context.SaveChanges();
    


延伸閱讀: Entity Framework Core 7 自動紀錄資料表的 建立時間和修改時間

參考資料:
Microsoft.Learn - DbContext.Update Method
Microsoft.Learn - EntityState Enum

留言