1

我們使用WCF數據服務來代理數據服務器端,並使第三方可以輕鬆訪問我們的數據。事情的服務器端一直比較容易。另一方面,客戶端正在給我們配合。WCF數據服務:在保存時處理對象

我們正在從常規實體框架轉換爲數據服務,並且我們創建了一個程序集,其中包含生成的與數據服務交談的客戶端對象(通過服務引用)。這些類是部分的,所以我們爲它們添加了一些邏輯和擴展屬性。這一切都很好。

我們遇到的問題是我們需要在保存時處理我們的對象,因爲它們在通過電線發送之前需要進行一些高級序列化。 DataServiceContext類包含兩個事件:WritingEntity和ReadingEntity。 ReadingEntity事件實際發生在我們正確的時間(post object deserialization)。 WritingEntity事件發生在我們的錯誤時間(後對象序列化)。

是否有任何方法在寫入請求之前捕捉對象,以便我們可以調用將要寫入的實體的方法?

顯然,我們可以循環遍歷實體列表,尋找任何未處於Unchanged或Deleted狀態的實體,並在那裏調用適當的方法...但是這需要我每次添加特殊代碼想要在上下文中調用SaveChanges。這可能是我們需要做的,但如果有方法在將實體寫入XML以發送到服務之前捕獲這些實體,那將會很不錯。

回答

0

目前DataServiceContext中沒有掛鉤來執行您想要的操作。我能想到的最接近的方法是,你建議將所有實體和發現進行修改。你可以在你自己的類似SaveChanges的方法上下文類(這也是部分的)中做到這一點。