2011-04-12 33 views
0

我是新來的實體框架。我之前使用過其他數據持久層,並希望在我開發的其他應用程序中完成以下我習慣的操作。 我想問問是否可以使用EF並獲得幾條關於如何去做的指導實體框架和通過提供者模式的全局數據保存/更新處理程序

我希望每次將實體保存到數據庫(添加/更新)時,都可以使用鉤子通過提供者模式「附加」各種功能,這些功能必須在事務處理之前/之後被調用。例如,我可能想要實現一個AuditProvider。如果被保存的實體實現了一個Interface IAuditEnabled,它將添加屬性SysAddUser,SysAddDate,SysUpdateUser,SysUpdateDate(允許設置哪個用戶添加/更新的記錄以及在哪個時刻),這將被調用。另一個功能是調用BusinessEntityEnforcerProvider,它檢查業務對象是否實現IBusinessEntityEnforcer接口並調用方法EnforceBusinessRules。幾乎沒有想法。

爲了澄清,我希望有可能在保存前/保存後將各種功能掛接到業務對象,我不想調用specificaly,但要確保它們始終在BO之前或之後被調用被保存。

我欣賞任何建議。

謝謝

+0

經過一番研究,我發現在EF4(我將使用)中,可以覆蓋SaveChanges。我在這裏找到了它,看起來它可以讓我做我需要的東西(在調用base.SaveChanges之前調用我的提供者)。如果有人有任何更多的建議或建議,我會很感激。 – bzamfir 2011-04-12 22:09:11

回答

2

實體框架Object Context作爲部分類生成。您可以擴展實現並覆蓋SaveChange方法,以便在每次保存之前和之後執行代碼。