我正在使用ASP NET Core Identity以便将用户登录到他的帐户中
但是由于某种原因,它开始引发我异常
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);
}
答案 0 :(得分:0)
您在此处使用AsNoTracking,这就是发生此问题的原因。删除它,它将可以正常工作。
在使用它之前,请确保您知道AsNoTracking的意思。
欢呼