2011-08-15 66 views
0

目前我已經擁有一個大型實體數據模型(.edmx),並在其下面有一個數據庫。現在,我想讓使用我的網站的用戶可以選擇編輯這些實體,但只能在我批准更改後才能編輯這些實體。實體框架 - 跟蹤更改和回滾

所以這意味着我想「改變」實體,但並沒有真正保存它,在我接受了改變之後,它將改變改變後的實體。但是當我這樣做時,我仍然希望能夠在之後回滾更改。

現在我已經想出了幾個解決方案:

1)請用像實體:[ID],[ChangeApplyDate] [ChangeApproveDate] [實體之前改變] [實體變更後] [接受(布爾)]

2)使用已更改的值和指向「原始」實體的鏈接創建一個額外的實體,並在該實體中具有布爾值(如果它是當前批准的實體)。 (這不會創建一個新表,但擴大一樣,「書」的表格中,有一些額外的屬性。

現在我想知道你是怎麼想的解決方案,如果你做過這樣的事情?

回答

0

這裏有兩件事情:

  1. 保留所有先前版本的列表看一看我回答這個問題:Ideas on database design for capturing audit trails

  2. 精讀巨魔接受變化。要做到這一點,你可以添加一個批准標誌,每個表,只有你有權訪問。

+0

我會在一會兒讀你的鏈接,但是第二個選擇我會在同一個表中有多個版本的實體(但帶有批准標誌)不會是數據庫空間的巨大浪費? – Julian

+0

我看了一下這個鏈接,那是一個天才的解決方案。非常感謝,這幫了我很多! – Julian