我目前正在努力解決一個簡單的 SQL 問題,我似乎無法用“純”Entity Framework Core 2.2 解決這個問題。如何在不執行以下操作的情況下檢查插入過程中是否已經存在實體?var entity = await _repository.Get(message.Id);if(entity == null){ entity = new Entity (); // do something with the entity await _repository.AddAsync(entity);}else{ // do something with the entity await _repository.Update(entity);}await _repository.SaveChangesAsync();這還不夠安全。我經常遇到主鍵違規。我的服務在多個實例上運行,并且我在短時間內收到具有相同主鍵的消息。有沒有更好更安全的方法來檢查實體框架核心中是否已經存在而無需自己編寫 SQL?
1 回答

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
目前,EF Core 本身不支持 Upsert(在此處打開 GitHub 問題:https ://github.com/aspnet/EntityFrameworkCore/issues/4526#issuecomment-366818031 )
可以在此處找到擴展 EF Core 以支持此功能的開源庫:https ://github.com/artiomchi/FlexLabs.Upsert
- 1 回答
- 0 關注
- 102 瀏覽
添加回答
舉報
0/150
提交
取消