Silverlight RIA Services缓存引发的问题

 问题描述:使用Silverlight的RIA Services进行数据库更新操作,重复提交时发现异常,SubmitOperation发生错误,提示实体类冲突,检查发现之前删除的数据竟然还存在(数据库中已经删除),再进行删除操作时,会对数据库中已经不存在的数据进行删除,所以报错。

解决办法:每次提交操作中都重新Load一次,保证与数据库的数据是同步的,对Load的数据进行操作,清除缓存数据的影响,问题得到解决。

原因:这是因为RIA Services每次都会根据查询条件将数据库中的数据取出来放到客户端,并做成实体类的形式方便开发者进行数据增删改查,再通过SubmitChange方法提交所有操作,对数据库进行更新,这就可能造成数据库更新了,但是在客户端的数据还没有更新,引发错误。

另外,提交前需要对Domain Services的IsSubmitting、IsLoading状态进行判断处理,避免提交失败。 

Silverlight RIA Services缓存引发的问题

时间: 2024-10-12 18:51:02

Silverlight RIA Services缓存引发的问题的相关文章

Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件

最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下:   1.UI控件与布局     2.MVVM     3.数据绑定     4.await/async     5.Linq查询     6.WCF RIA Services     7.序列化     8.委托与事件 1.UI控件与布局 常用的主要是Grid.StackPanel.Border,其中最常用的的是Grid,是一

CSDN日报20170301——《一次dns缓存引发的惨案》

[程序人生] 一次dns缓存引发的惨案 作者:纯洁的虫子 时间2015年的某个周六凌晨5点,公司官方的QQ群有用户反馈官网打不开了,但有的用户反馈可以打开,客服爬起来自己用电脑试了一下没有问题,就给客户反馈说,可能是自己网络的问题,请过会在试试.早点8点,越来越多的用户反馈官网无法打开,并且有部分用户开发反馈app也打不开了,客服打电话叫起了还在梦乡中的我. -- 点此阅读全文 [Android 开发] Android UI性能优化 检测应用中的UI卡顿 作者:鸿洋 在做app性能优化的时候,大

.svc处理程序映射缺失导致的WCF RIA Services异常

在确定代码.编译结果和数据库都正常的情况下,无法从数据库取到数据.错误提示:Sysyem.Net.WebException:远程服务器返回了错误:NotFound,监听发现请求数据库的服务异常,访问相关地址HTTP404错误. 向数据库发起的请求异常 访问svc地址后的错误信息 在确定其他各方面正常,并且修复了一遍vs,各种IIS设置检查后依然没有找到原因,而且工程在同事电脑上能够正常运行,最后确定只可能是.Net Framework或者IIS有问题,因为之前同事在机器上装测试工具,安装了.Ne

使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段

对数据库表指定字段的查找,又是实际工作中的一项必要工作.SL客户端仅获取实际需要的指定的字段,好处很多,比如:有助于减少网络流量. 有两类这样的使用场景. 1:联表查询不需要外键表 在上一篇中,我们使用了联表查询,在联表查询中,DAL部分的代码是这样的: 我们已经指出,无论是你是否使用Include方法,只要实体类指定了Include特性,客户端都会获取到被关联的Course记录.诚然,有时候我们需要满足联表查询,但是其他时候我们不需要. 2:单表中仅仅需要部分字段 比如:一个表有5个字段,我仅

一次dns缓存引发的惨案

时间2015年的某个周六凌晨5点,公司官方的QQ群有用户反馈官网打不开了,但有的用户反馈可以打开,客服爬起来自己用电脑试了一下没有问题,就给客户反馈说,可能是自己网络的问题,请过会在试试.早点8点,越来越多的用户反馈官网无法打开,并且有部分用户开发反馈app也打不开了,客服打电话叫起了还在梦乡中的我. 分析定位 被客服叫起来之后,一脸懵逼,不知道什么情况,给客服回复,知道了,立刻排查,待会有消息及时沟通.用凉水洗了一把脸清醒了一下,立刻根据经验回忆这两天生产投产的情况:上线了XX模块,不影响.修

silverlight RIA Service的增删改查求助

做silverlight的查询(初始化数据,用的是RIA Service)时的代码: ThisDomainContext users = new ThisDomainContext(); public void LoadData()        {           EntityQuery<T_User> query = from t in users.GetT_UserQuery() select t;            users.Load<T_User>(query)

一次dns缓存引发的慘案

时间2015年的某个周六凌晨5点,公司官方的QQ群实用户反馈官网打不开了,但有的用户反馈能够打开.客服爬起来自己用电脑试了一下没有问题,就给客户反馈说.可能是自己网络的问题,请过会在试试.早点8点,越来越多的用户反馈官网无法打开,而且有部分用户开发反馈app也打不开了.客服打电话叫起了还在梦乡中的我. 分析定位 被客服叫起来之后,一脸懵逼,不知道什么情况.给客服回复,知道了,立马排查.待会有消息及时沟通.用凉水洗了一把脸清醒了一下.立马依据经验回顾这两天生产投产的情况:上线了XX模块,不影响.修

Hirbernate 二级缓存引发的问题

Hirbernate 的二级缓存不受控 可能引发的问题 query.setCacheable(true); 使用查询缓存 可能第一次没取到数据就无法缓存 认定该语句无返回结果 即使你把语句丢到 数据库工具中能查到数据 该方法也返回的结果也是没有数据 public List<Object> getSyllabusByNowTime(String date) {  StringBuilder sql = new StringBuilder();  sql.append("SELECT s

由于未清除缓存引发的bug

在写页面的时候,首先引入了本地react.js和react-dom.js 16版本(cjs)的文件,出现如下错误 发现bug后,将本地的react.js和react-dom.js文件改成16.2(umd)版本,之后还是一直出现上面的错误. 最后分析原因: 是因为浏览器的缓存没有清除,清除缓存后,bug消失. 由于找bug花费时间较长,特此记录. 原文地址:https://www.cnblogs.com/xinzaimengzai/p/9927997.html