遵循这个很棒的教程后,我的更改跟踪器没有显示值已更改。
这是我的方法:
public override int SaveChanges()
{
var modifiedEntities = ChangeTracker.Entries()
.Where(p => p.State == EntityState.Modified).ToList();
var now = DateTime.UtcNow;
foreach (var change in modifiedEntities)
{
var entityName = change.Entity.GetType().Name;
var primaryKey = GetPrimaryKeyValue(change);
foreach (var prop in change.OriginalValues.PropertyNames)
{
var originalValue = change.OriginalValues[prop].ToString();
var currentValue = change.CurrentValues[prop].ToString();
if (originalValue != currentValue)
{
ChangeLog log = new ChangeLog()
{
EntityName = entityName,
PrimaryKeyValue = primaryKey.ToString(),
PropertyName = prop,
OldValue = originalValue,
NewValue = currentValue,
DateChanged = now
};
ChangeLogs.Add(log);
}
}
}
return base.SaveChanges();
}
为什么originalValue和 一样currentValue?
进行更改时,由于某种原因,原始值和当前值保持不变。我究竟做错了什么?
ChangeTracker 显示 1 条记录已更改!

