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 關注
- 103 瀏覽
添加回答
舉報