1 回答

TA贡献1911条经验 获得超7个赞
对于Context.Attach(entity);,默认值或原始值来自entity您从客户端传递的而不是查询数据库。
作为解决方法,您可以尝试entry.GetDatabaseValues().GetValue<object>(property.Metadata.Name)获取数据库的原始值。
public override int SaveChanges()
{
ChangeTracker.DetectChanges();
var entries = ChangeTracker.Entries().Where(e => !(e.Entity is Audit) && e.State != EntityState.Detached && e.State != EntityState.Unchanged);
foreach (var entry in entries)
{
switch (entry.State)
{
case EntityState.Modified:
foreach (var property in entry.Properties)
{
if (property.IsModified)
{
var original = entry.GetDatabaseValues().GetValue<object>(property.Metadata.Name);
var current = property.CurrentValue;
}
}
break;
}
}
return base.SaveChanges();
}
- 1 回答
- 0 关注
- 118 浏览
添加回答
举报