实体框架 - 原始值与当前值相同

时间:2016-05-05 08:37:02

标签: .net vb.net entity-framework

我最初有这个工作,但似乎它已停止工作。 originalValue和currentValue的值似乎总是相同。

这是我的代码

Public Overrides Function SaveChanges() As Integer

    Dim modifiedEntities = ChangeTracker.Entries.ToList

    For Each ent As DbEntityEntry In modifiedEntities
        If ent.State = EntityState.Modified Then
            Dim type = ent.Entity.GetType.Name
            Dim primaryKey = GetPrimaryKeyValue(ent)

            Dim jo As New JObject
            For Each prop In ent.OriginalValues.PropertyNames
                Dim originalValue = ent.OriginalValues(prop).ToString
                Dim currentValue = ent.CurrentValues(prop).ToString
                If originalValue <> currentValue Then
                    jo.Add(New JProperty(prop, currentValue))
                End If
            Next
        End If
    Next

    Return MyBase.SaveChanges()

End Function

我知道JSON对象实际上没有做任何事情,但是当单步执行代码时,即使值已更新,originalValue也始终与currentValue相同。

1 个答案:

答案 0 :(得分:0)

你可以试试这个:
How to get original values of an entity in Entity Framework?

Dim originalValue = CType(context.ObjectStateManager.GetObjectStateEntry(ent).OriginalValues(prop), String)