2011-07-23 114 views
1

因此,您實例化EF上下文,將對象插入或拉出對象,跟蹤對象更改的完整狀態(如果更改跟蹤)。直到這一點,開發人員一直負責進行這些修改。但是一旦調用了SaveChanges,所有這些記錄都會被批量提交,並且開發人員被剝奪了最終結果的權利,在出錯時保存錯誤消息或完成調用時成功完成調用。實體框架SaveChanges - 自定義行爲?

有沒有一種方法可以自定義SaveChanges過程,使它不是這樣的黑匣子?理想情況下,能夠自定義流程將爲我打開一些東西,特別是在我的應用程序體系結構中。

謝謝。

+0

什麼樣的定製? – Eranga

+0

你可以回頭看看你的問題,並重寫它或什麼?\ –

+0

有沒有一種方法來定製SaveChanges過程,以便它不是這樣一個黑匣子? - 這一切都說......我不喜歡EF做它的方式。它提交了100個更改,而您不知道發生了什麼...... –

回答

3

處理SavingChanges事件是一種方式,但對於更復雜的處理,您可以在派生上下文中覆蓋SaveChanges操作本身。不同的是,在SavingChanges中,您可以在SaveChanges完成其工作之前放置自定義邏輯,但在重寫SaveChanges時,可以在調用base.SaveChanges之前和之後放置自定義邏輯。保存期間沒有更好的自定義邏輯支持。只有將存儲過程映射到實體的數據修改操作時,才能使用自定義SQL進行保存。

+0

這是正確的。我沒有提到這一點,而這是我打算提供的方法。我刪除了我的答案。有一個upvote! – anon