instance of entity type cannot be tracked because another instance with same key value is tracked

后端 未结 4 1647
一个人的身影
一个人的身影 2021-02-12 22:48

I\'m using generic repository pattern in asp.net core 2.0 which can not dispose repository object, when I am going to update the entry its updated for one time successfully but

4条回答
  •  南旧
    南旧 (楼主)
    2021-02-12 23:13

    Just like Rudi Visser suggested, you can face this issue when using one entity across multiple data contexts. In my case, it was something similar to this:

    User user = await DataContext.Users.SingleOrDefaultAsync(u => u.Id == "SomeId");
    
    // Switch to UserManager *_*
    var res = await UserManager.ResetPasswordAsync(user, token, password); // Exception thrown
    

    A simple solution would be to try to stick to one DataContext, because UserManager seems to do some attaching and detaching (maybe) in the background. For example:

    User user = await UserManager.FindByIdAsync("SomeId");
    var res = await UserManager.ResetPasswordAsync(user, token, password);
    

提交回复
热议问题