我在使用身份用户时遇到了一个问题。呼叫Update(user)
后,数据库中的记录发生了变化。再次调用Method(string userId)
时出现问题,包含FindById(userId)
。FindById(userId)
返回一个用户,尽管我之前已经更新了它,但所有记录仍然保留为第一个记录。
我实现了user table:
public class ApplicationUser : IdentityUser
{
public int MyProperty { set; get; }
}
用户管理员类:
public class ApplicationUserManager : UserManager<ApplicationUser>, IApplicationUserManager
{
public Task MethodAsync(string userId)
{
// Find user
// return object before change (MyProperty not equal 1)
ApplicationUser user = await base.FindByIdAsync(userId);
user.MyProperty = 1;
await base.UpdateAsync()
}
}
是否仅在更新当前登录用户的属性时发生?如果是,请尝试重新登录:
SignInManager.SignIn(user, false, false)
用户对象可以从UserManager.FindById
方法获得