0

(對不起我的英文不好)在EF 4.2代碼獲得改變的屬性列表僅

嘿,我需要登錄,關於我的數據庫發生的審計目的的所有變化。當我插入或刪除一個實體時,它很容易,但是當我更新某些東西時,我需要保存哪些屬性已經改變,以及從哪個值到哪些值。我的域名服務是一個DbDomainService。我如何獲得更改?我是否需要點擊數據庫才能查看舊值並自行比較?

+0

[使用MVC和實體框架實現審計日誌/更改歷史記錄](http://stackoverflow.com/questions/6867459/implementing-audit-log-change-history-with-mvc-entity-framework) – Eranga 2012-02-27 10:51:15

回答

0

有更好的方法來做到這一點(例如,使用Aspect編碼技術),但我有一個孤立的情況下,我做到了這一點。這是WCF RIA Services在服務器端的標準更新,用於允許更新發生的每個實體。

public void UpdatePackingSlip(PackingSlip currentPackingSlip) 
{ 

    var BeforeUpdate_PackingSlip = this.ChangeSet.GetOriginal(currentPackingSlip); 
    //at this point you can compare the original values from the updated values, and capture 
    // whatever you want todo 

只要確保你不改變,重視對象回 對象上下文的代碼。

+0

計算機,這是我的第一個猜測,但'this.ChangeSet.GetOriginal(currentEntity)'總是返回null。我不知道是否是一個RIA的東西......通過小提琴看,我可以看到只有改變的值(而不是原始)正在發送到SubmitChanges服務器。 – Leo 2012-02-28 18:43:15