问题描述:使用Silverlight的RIA Services进行数据库更新操做,重复提交时发现异常,SubmitOperation发生错误,提示实体类冲突,检查发现以前删除的数据居然还存在(数据库中已经删除),再进行删除操做时,会对数据库中已经不存在的数据进行删除,因此报错。数据库
解决办法:每次提交操做中都从新Load一次,保证与数据库的数据是同步的,对Load的数据进行操做,清除缓存数据的影响,问题获得解决。缓存
缘由:这是由于RIA Services每次都会根据查询条件将数据库中的数据取出来放到客户端,并作成实体类的形式方便开发者进行数据增删改查,再经过SubmitChange方法提交全部操做,对数据库进行更新,这就可能形成数据库更新了,可是在客户端的数据尚未更新,引起错误。spa
另外,提交前须要对Domain Services的IsSubmitting、IsLoading状态进行判断处理,避免提交失败。 blog