我有一个WCF数据服务,我的客户端是一个WPF应用程序。
我的WCF数据服务中有一个服务操作。类似的东西
[WebGet]
public IQueryable<VSuppliersExtra> GetAllVSuppliers()
{
List<VSuppliersExtra> lstVsup = new List<VSuppliersExtra>();
// add some VSuppliersExtra entities to the list
........
return lstVsup.AsQueryable<VSuppliersExtra>();
}
在我的客户中我有
oCollection = new ObservableCollection<VSuppliersExtra>(jp.CreateQuery<VSuppliersExtra>("GetAllVSuppliers"));
//Open a new window Change collection and update the changes in the DB
.......
//run the same query again
.......
oCollection = new ObservableCollection<VSuppliersExtra>(jp.CreateQuery<VSuppliersExtra>("GetAllVSuppliers"));
现在,一切正常,但是第二次调用服务操作总是会在没有更改的情况下得到相同的结果,直到我重启我的应用程序。
我检查数据库,我的所有更改都保存到SQL服务器,我检查了服务中的函数,它确实返回更新的数据...我得到相同的结果集!!!!
在客户端是否有一些缓存????
答案 0 :(得分:4)
那么, 我找到了一些文章http://msdn.microsoft.com/en-us/library/gg602811.aspx 我添加了一个context.MergeOptions = MergeOption.OverwriteChanges;
这就是诡计。
谢谢