我无法将对用户的更改保留在用户表中

时间:2019-06-23 12:45:28

标签: asp.net vb.net asp.net-identity

当我在usermanager中对用户字段进行更改时,我无法通过更新userstore使这些更改保留在用户表中。

我尝试了userstore.updateasync,userstore.savechanges等。

Dim dbcontext As New ApplicationDbContext
Dim store1 As New UserStore(Of ApplicationUser)(dbcontext)
Dim manager1 = New UserManager(Of ApplicationUser)(store1)
Dim currentUser = manager1.FindById(Context.User.Identity.GetUserId())

SubscriptionState = "Inactive"
currentUser.SubscriptStatus = SubscriptionState
manager1.UpdateAsync(currentUser)
store1.Context.SaveChangesAsync()

我希望能够更改用户的订阅状态,并将那些更改保留在用户表中。

1 个答案:

答案 0 :(得分:0)

代码的一个问题是UpdateAsync是异步操作,因此线程将在UpdateAsync完成之前继续执行下一行代码。这意味着SaveChangesAsync函数很可能在UpdateAsync函数完成之前完成。您可以在UpdateAsync之前添加一个等待操作符,以确保它在SaveChangesAsync之前完成。