Vb.net 实体框架不更新数据存储?
将EF与SQL数据存储一起使用时,数据存储未使用正确的数据进行更新。下面是关于如何创建包装器对象和应该更新的相关函数的代码部分。我认为我的问题与实体上下文的生命周期有关?但是,在保存对象之前将其重新附加到上下文不应该解决任何问题吗Vb.net 实体框架不更新数据存储?,vb.net,entity-framework,Vb.net,Entity Framework,将EF与SQL数据存储一起使用时,数据存储未使用正确的数据进行更新。下面是关于如何创建包装器对象和应该更新的相关函数的代码部分。我认为我的问题与实体上下文的生命周期有关?但是,在保存对象之前将其重新附加到上下文不应该解决任何问题吗 Public Sub New(ByVal UserID As Integer) Using Context As New RiseDB.RiseDBContainer MyUser = Context.Users.Find(UserID)
Public Sub New(ByVal UserID As Integer)
Using Context As New RiseDB.RiseDBContainer
MyUser = Context.Users.Find(UserID)
End Using
End Sub
Public Function Save() As Boolean
Using Context As New RiseDB.RiseDBContainer
Context.Users.Attach(MyUser)
Context.SaveChanges()
End Using
Return True
End Function
Protected Overrides Sub Finalize()
If Not IsNothing(Context) Then
Context.SaveChanges()
Context.Dispose()
Context = Nothing
End If
MyBase.Finalize()
End Sub
应设置属性的函数:
Public Shared Function PasswordChanged(ByVal UserID As Integer) As Boolean
Dim tmp As New User(UserID)
tmp.IsPasswordReset = False
tmp.Save()
Return True
End Function
执行Save函数时会出现哪些错误?您使用的是什么版本的EF?哪个版本的.NET?Ans Visual Studio?未给出任何错误。EF:6.1比2012.4.5。如果我尝试重新附加对象并保存更改,数据存储将不会更新为新值。由于编辑保存操作是短暂的,所以我想到的最好的解决方法是打开一个上下文,在保存之前不要分离或重新附着对象。