.net core 更新对象的相关数据时出现奇怪场景错误

.net core 更新对象的相关数据时出现奇怪场景错误,.net-core,entity-framework-core,asp.net-core-webapi,.net Core,Entity Framework Core,Asp.net Core Webapi,我正在将.NETCore3.1与EF一起使用,我遇到了这个错误 数据库操作预期影响1行,但实际影响0行 世界其他地区。自实体被删除后,数据可能已被修改或删除 上膛了 我有一个简单的函数 public async Task<List<User>> ChangeUsersListStatus(List<User> users, string status) { foreach(User user in users) { user.S

我正在将.NETCore3.1与EF一起使用,我遇到了这个错误

数据库操作预期影响1行,但实际影响0行 世界其他地区。自实体被删除后,数据可能已被修改或删除 上膛了

我有一个简单的函数

public async Task<List<User>> ChangeUsersListStatus(List<User> users, string status)
{
    foreach(User user in users)
    {
        user.Status = status;
        _context.Users.Update(user);
    }

    await _context.SaveChangesAsync();
    return users;
}
但如果我得到的用户列表看起来像我没有错误,它将运行良好

List<User> usersToDeactivate = await _context.Users.Where(e => e.EmployeeForeignKey == employee.Id).AsNoTracking().ToListAsync();
await _userService.ChangeUsersListStatus(usersToDeactivate, UserStatus.Active);
List usersToDeactivate=await\u context.Users.Where(e=>e.EmployeeForeignKey==employee.Id).AsNoTracking().toListSync();
wait_userService.ChangeUsersListStatus(usersToDeactivate,UserStatus.Active);
我想知道为什么会发生这种行为,我只需要理解,为什么ORM会看到“employee.Users”不同于用户列表


提前感谢。

它必须与并发和/或更改跟踪相关。
用户
实体是否正在使用?它是否具有指向员工的引用导航属性?为了得到更精确的答案,请使用示例模型更新问题,该模型会复制问题(),因为细节很重要。它必须与并发性和/或更改跟踪相关。
用户
实体是否正在使用?它是否具有指向员工的引用导航属性?为了得到更精确的答案,请使用示例模型更新问题,该模型复制了问题(),因为细节很重要。
List<User> usersToDeactivate = await _context.Users.Where(e => e.EmployeeForeignKey == employee.Id).AsNoTracking().ToListAsync();
await _userService.ChangeUsersListStatus(usersToDeactivate, UserStatus.Active);