2

我们使用的是 Microsoft WCF 数据服务的 System.Data.Services.Client(我猜是第 4 版)。当我们更新到 5.2 版本(Microsoft.Data.Services.Client dll)时,似乎在新版本的 WCF 数据服务中插入了一些缓存机制。

因为当我们通过浏览器查询数据服务(OData)时,会返回新数据,但是当我们在我们的 UI 项目中添加服务引用并使用该引用(代理)来检索数据时,只有 10 分钟左右的新数据将显示。

通过重置 IIS (iisreset.exe) 可以获得新数据,这可能意味着 UI 项目中的某处应该有缓存。

我们没有在代码中做一些特别的事情,而是在最简单的状态下使用 OData 服务引用:

public List<Customer> GetCustomers()
{
    CustomersODataModel customersData = new CustomersODataModel("Url");
    return customersData.ToList();
}
4

1 回答 1

3

考虑在 DataService 对象中禁用客户端缓存,看看是否有帮助。我遇到了同样的问题,将 dataService.MergeOption 设置为 MergeOption = MergeOption.OverwriteChanges 有助于保持数据服务在每次更改时刷新对象并获取。

于 2013-01-12T02:16:56.060 回答