我正在将 ObjectContext 的 SavingChanges 事件处理为时间戳条目。要求是,如果只有 ColumnA 发生了变化,我不会在条目发生变化时为其添加时间戳。
有没有办法可以找出在此事件期间哪些列已更改(正在更改)?
我正在将 ObjectContext 的 SavingChanges 事件处理为时间戳条目。要求是,如果只有 ColumnA 发生了变化,我不会在条目发生变化时为其添加时间戳。
有没有办法可以找出在此事件期间哪些列已更改(正在更改)?
这应该对你有用,这将遍历任何添加/修改的条目,如果有超过 1 个修改的属性,并且它不是“ColumnA”,你可以修改时间戳:
public int SaveChanges()
{
foreach( ObjectStateEntry entry in ObjectStateManager.GetObjectStateEntries( EntityState.Added | EntityState.Modified ) )
{
var properties = entry.GetModifiedProperties();
if (!(properties.Count() == 1 && properties.First() == "ColumnA"))
{
//modify timestamp here
}
}
return base.SaveChanges();
}