2013-02-18 62 views
0

我的要求是更新對象的UpdatedDate財產每當ObjectContext.SaveChanges方法被調用,爲此我試圖附加事件處理程序的SaveChanges事件,我想找到正在更新和更新對象它的UpdateDate屬性,但我找不到找到正在更新的對象的方法。爲ObjectContext.SaveChanges事件事件處理

有什麼想法?我是否在做正確的事情來達到我的要求?

回答

0

你可以看看在ObjectStateManager

是這樣的:

private void context_SavingChanges(object sender, EventArgs e) 
{ 
    var context = (ObjectContext)sender; 
    var lst = context.ObjectStateManager 
        .GetObjectStateEntries(EntityState.Modified); 

    foreach(var item in lst) 
    { 
     var entity = item.Entity; 
     // TODO: set values here: 
    } 
} 
+0

感謝了很多人!它非常有效!是否有任何預定義的方式來設置任何屬性的值?就像我想設置正在更新的對象的UpdatedDate值,或者反射是唯一的方法? – 2013-02-18 14:13:00

+0

Np個:)我會suggets您展開需要有一個接口(也許'IUpdateEntity'或某事),你可以在你的循環使用更新的實體。是這樣的:'VAR實體= item.Entity作爲IUpdateEntity' – 2013-02-18 14:16:44

+1

呀,這樣來到我的腦海但幸運的反射更容易滿足的要求:)現在一切工作真棒! – 2013-02-19 06:55:10