我是,使用ASP NET核心身份登录用户进入他的帐户
但由于某种原因,它开始给我一个例外
InvalidOperationException:无法跟踪实体类型“User”的实例,因为已经跟踪了另一个键值为“{Id:99d1aa12-3f75-497d-a4cc-5d2103c1b042}”的实例。附加现有实体时,请确保仅附加具有给定键值的一个实体实例。
是什么原因造成的?
public async Task<IActionResult> Login(string Login, string Password, string ReturnUrl = "/")
{
var user = await _context.Users.AsNoTracking().FirstOrDefaultAsync(x => x.UserName == Login);
if (user == null)
{
return View("Error");
}
var sign = await _signInManager.PasswordSignInAsync(user, Password, true, true); // here
if(!sign.Succeeded)
{
return View("Error");
}
return Redirect(ReturnUrl);
}
你在这里使用AsNoTracking,这就是问题发生的原因。删除它,它将工作只是找到。
另外,在使用之前,请确保您知道AsNoTracking的含义。
干杯