实体框架DB在重建项目之前不更新?

时间:2014-02-04 19:43:45

标签: asp.net sql entity-framework

我的项目使用LINQ to SQL和EF来处理数据库中的对象。我在实体对象中有一个状态列,指定为int。我的BI层使用以下代码更新此数据,当我更改数据时,如果我查询SQL我在DB中看到更新的值,但是UI层没有显示新值,它显示旧值。在VS中停止项目并重新启动它,然后它将显示更新的数据。

EF会进行任何缓存吗?这可能是因为有3个单独的数据,UI和BI项目吗?

Public Shared Function UpdateStatus(PersonID As Guid, Status As LeadStatus, UserName As String) As Boolean
    Dim db As New MyDb.DBContainer
    Dim z = (From p In db.People Where p.Id = PersonID).FirstOrDefault()
    If Not IsNothing(z) Then
        z.Status = Status
        db.SaveChanges()
        LeadLogFunctions.AddLog(LeadLogTypes.StatusChanged, PersonID, UserName, "Status Changed By: " & UserName & " To: " & Enumeration.GetEnumDescription(Status))
        Return True
    End If
    Return False
End Function

1 个答案:

答案 0 :(得分:0)

在从数据库重新加载UI层之前,UI层不会显示新值。

如果您保持相同的DbContext打开,则应重新加载现有实体,而不是使用DbContext.Entry(of T)().Reload()函数进行新查询。