我試圖洗掉一條記錄 - 但我收到了這個錯誤:
無法跟蹤物體型別“用戶”的實體,因為已經在跟蹤具有相同鍵值 {'Id'} 的另一個實體。附加現有物體時,請確保僅附加一個具有給定鍵值的物體實體。考慮使用“DbContextOptionsBuilder.EnableSensitiveDataLogging”來查看沖突的鍵值
我嘗試了以下方法,但都因相同的錯誤而失敗。
var Users = context.Users.Where(x => x.Id.Equals(UsersId));
context.Users.RemoveRange(Users);
await context.SaveChangesAsync();
var Users = await context.Users.AsNoTracking().FirstOrDefaultAsync(x => x.Id.Equals(UsersId));
context.Users.Remove(Users);
await context.SaveChangesAsync();
var Users = new Users() {Id = UsersId};
context.Users.Attach(Users);
context.Users.Remove(Users);
await context.SaveChangesAsync();
uj5u.com熱心網友回復:
提供的代碼不足以理解根本原因。
如果它是一個 Web 應用程式,您可能會遇到跨所有 http 請求共享相同資料庫背景關系的問題。但是對于每個 http 請求,資料庫背景關系應該是唯一的。避免使其成為單例。
如果它是控制臺應用程式 - 您可能會遇到配置問題。
選項 1:
嘗試這樣做:
Context.Entry(entity).State = EntityState.Detached
這不是解決方案,而只是用于故障排除。
選項 2:
嘗試使用您的資料庫背景關系創建一個非常簡單的控制臺應用程式并運行您的第一個代碼片段 - 它應該可以作業。
可能有用:
無法跟蹤物體型別的實體,因為跟蹤了具有相同鍵值的另一個實體
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/463231.html
