問題描述:使用Silverlight的RIA Services進行數據庫更新操做,重複提交時發現異常,SubmitOperation發生錯誤,提示實體類衝突,檢查發現以前刪除的數據居然還存在(數據庫中已經刪除),再進行刪除操做時,會對數據庫中已經不存在的數據進行刪除,因此報錯。數據庫
解決辦法:每次提交操做中都從新Load一次,保證與數據庫的數據是同步的,對Load的數據進行操做,清除緩存數據的影響,問題獲得解決。緩存
緣由:這是由於RIA Services每次都會根據查詢條件將數據庫中的數據取出來放到客戶端,並作成實體類的形式方便開發者進行數據增刪改查,再經過SubmitChange方法提交全部操做,對數據庫進行更新,這就可能形成數據庫更新了,可是在客戶端的數據尚未更新,引起錯誤。spa
另外,提交前須要對Domain Services的IsSubmitting、IsLoading狀態進行判斷處理,避免提交失敗。 blog