我最初有这个工作,但似乎它已停止工作。 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相同。
答案 0 :(得分:0)
你可以试试这个:
How to get original values of an entity in Entity Framework?
Dim originalValue = CType(context.ObjectStateManager.GetObjectStateEntry(ent).OriginalValues(prop), String)