diff --git a/FreeSql.DbContext/DbSet/DbSetAsync.cs b/FreeSql.DbContext/DbSet/DbSetAsync.cs index 3d7df0bc..5863b766 100644 --- a/FreeSql.DbContext/DbSet/DbSetAsync.cs +++ b/FreeSql.DbContext/DbSet/DbSetAsync.cs @@ -255,8 +255,8 @@ namespace FreeSql curContains.Add(curIdx); } if (curContains.Any()) - foreach (var curIdx in curContains) - curList.RemoveAt(curIdx); + for (var delIdx = curContains.Count - 1; delIdx >= 0; delIdx--) + curList.RemoveAt(curContains[delIdx]); else midListDel.Add(midItem); } diff --git a/FreeSql.DbContext/DbSet/DbSetSync.cs b/FreeSql.DbContext/DbSet/DbSetSync.cs index 4e92feb7..4f7f2701 100644 --- a/FreeSql.DbContext/DbSet/DbSetSync.cs +++ b/FreeSql.DbContext/DbSet/DbSetSync.cs @@ -267,8 +267,8 @@ namespace FreeSql curContains.Add(curIdx); } if (curContains.Any()) - foreach (var curIdx in curContains) - curList.RemoveAt(curIdx); + for (var delIdx = curContains.Count - 1; delIdx >= 0; delIdx--) + curList.RemoveAt(curContains[delIdx]); else midListDel.Add(midItem); }