【问题标题】:Entity Framework DB Not updating until project is rebuilt?实体框架数据库在项目重建之前不更新?
【发布时间】:2014-02-04 19:43:44
【问题描述】:

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

EF 是否进行任何缓存?这可能是由于数据、UI 和 BI 有 3 个单独的项目造成的吗?

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

【问题讨论】:

    标签: asp.net sql entity-framework


    【解决方案1】:

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

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

    【讨论】:

    • 我有一个访问实体的包装类。这样我打电话说访问 DBContext 的 New Person(PersonID),我应该有那个类。每次初始化时都重新加载?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    相关资源
    最近更新 更多