2
我在處理ObjectContext的SavingChanges事件以記錄時間條目。要求是,如果只有ColumnA發生了變化,那麼不會時間戳記條目發生變化。ObjectContext的SavingChanges:找出哪些列已經改變?
有沒有一種方法可以找出哪些列在此事件中發生了變化(正在改變)?
我在處理ObjectContext的SavingChanges事件以記錄時間條目。要求是,如果只有ColumnA發生了變化,那麼不會時間戳記條目發生變化。ObjectContext的SavingChanges:找出哪些列已經改變?
有沒有一種方法可以找出哪些列在此事件中發生了變化(正在改變)?
這應該通過任何添加/修改的條目爲你工作,這將循環,如果有超過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();
}
正確,除了OP詢問SavingChanges事件。區別是輕微的:http://stackoverflow.com/a/11250496/861716 – 2012-08-09 17:56:34
啊,你是對的,道歉!它仍然可以正常工作,只需將其放置在事件處理程序中即可 – 2012-08-09 17:58:08