我刚刚开始深入研究项目的ADO.NET数据服务,我很快就遇到了问题。起初我对性能感到惊讶,但后来我才意识到数据是缓存的。我的项目依赖于实时数据,我很乐意使用ADO.NET Data Services REST查询语法(无需使用WCF或SOAP),但不需要缓存。
我在ADO.NET数据服务介绍页面(here)上看到,他们还没有API支持来管理缓存持续时间或类似的东西。
任何人都有任何想法如何实现这一点,或关闭缓存?
答案 0 :(得分:2)
我们最近发表了一篇关于如何使用ETag来控制从数据服务返回的数据的缓存策略的帖子,http://blogs.msdn.com/astoriateam/archive/2008/04/22/optimistic-concurrency-data-services.aspx
答案 1 :(得分:2)
默认情况下,数据上下文将MergeOption设置为AppendOnly。这意味着重新请求只会添加新实体,而不会更新现有实体。尝试将MergeOption设置为OverwriteChanges:
this.context.MergeOption = MergeOption.OverwriteChanges;
当我注意到这一点时,这对我有用!如果您使用的是实时数据,则可能需要使用NoTracking选项完全关闭更改跟踪。
答案 2 :(得分:0)
该链接很有用,但它并没有真正谈论ETag和缓存,它只是提到ETag可以使用进行缓存。你有一个例子吗?
答案 3 :(得分:0)
详细介绍ETag