.net core 更新对象的相关数据时出现奇怪场景错误
我正在将.NETCore3.1与EF一起使用,我遇到了这个错误 数据库操作预期影响1行,但实际影响0行 世界其他地区。自实体被删除后,数据可能已被修改或删除 上膛了 我有一个简单的函数.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
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);