我有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 Server,我已经检查了服务中的函数,并且确实返回了更新的数据...但是,我得到的结果集是相同的!!!!
客户端有缓存吗????

最佳答案

好,
我发现了一些文章http://msdn.microsoft.com/en-us/library/gg602811.aspx
我添加了一个context.MergeOptions = MergeOption.OverwriteChanges;

就是那个把戏。

谢谢

10-05 20:09