我有问题再次调用WCF RIA服务来刷新客户端的数据.这是我的情况:
在服务器端,域服务是这样的:
public IQueryable<Person> GetPersonByID(int id) { var result = this.ObjectContext.Persons. Where(e => e.PersonID == id); return result; // check point 1 }
在客户端,我按以下方式拨打电话(这是通过一个名为“刷新”按钮的按钮来调用):
this._amsService.Context.Load<Person>( this._amsService.Context.GetPersonByIDQuery(this.Person.ID),LoadBehavior.RefreshCurrent,result => { this.Person = result.Entities.FirstOrDefault(); //check point 2 this.RaisePropertyChanged("Person"); },null);
这是我正在尝试的:
假设我在DB中有一个人,数据是personID = 1,Age = 16.
>然后运行应用程序,我以正确的方式获取数据.
>然后转到数据库,使用sql更新数据以更改Age = 20.
>然后返回应用并单击“刷新”按钮进行新呼叫,但年龄未更新为20,仍为16.
我在调试模式下运行应用程序,并检查数据:
在检查点1,我检查结果中的数据,没关系,年龄= 20.
在检查点2,我检查result.Entities中的数据,数据尚未刷新,它仍然是Age = 16.
我试过LoadBehavior.MergeIntoCurrent,但没有成功.
因此,我需要刷新SL应用程序主机页面以重新加载整个SL应用程序,然后我可以看到新数据.这对最终用户来说是不可接受的.
我不明白为什么.我也尝试使用fiddler来点击刷新按钮时获取数据,数据确实得到最新的Age = 20.
如何解决这个问题?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。