ADO.NET数据服务&x27;阿斯托里亚';和缓存

ADO.NET数据服务&x27;阿斯托里亚';和缓存,ado.net,caching,wcf-data-services,Ado.net,Caching,Wcf Data Services,我刚开始为一个项目深入研究ADO.NET数据服务,很快就遇到了一个问题。起初我对它的性能感到惊讶,但后来我意识到数据是缓存的。我的项目依赖于实时数据,我希望使用ADO.NET数据服务REST查询语法(不需要使用WCF或SOAP),但不需要缓存 我在ADO.NET数据服务介绍页()上看到,它们还没有API支持来管理缓存持续时间或类似的内容 有人知道如何实现这一点,或者关闭缓存吗?我们最近发表了一篇关于如何使用ETags控制从数据服务返回的数据的缓存策略的帖子,我们最近发表了一篇关于如何使用ETag

我刚开始为一个项目深入研究ADO.NET数据服务,很快就遇到了一个问题。起初我对它的性能感到惊讶,但后来我意识到数据是缓存的。我的项目依赖于实时数据,我希望使用ADO.NET数据服务REST查询语法(不需要使用WCF或SOAP),但不需要缓存

我在ADO.NET数据服务介绍页()上看到,它们还没有API支持来管理缓存持续时间或类似的内容


有人知道如何实现这一点,或者关闭缓存吗?

我们最近发表了一篇关于如何使用ETags控制从数据服务返回的数据的缓存策略的帖子,

我们最近发表了一篇关于如何使用ETags控制从数据服务返回的数据的缓存策略的帖子,

该链接很有用,但它并没有真正讨论etag和缓存,它只是提到etag可以用于缓存。你有一个例子吗?

这个链接很有用,但它并没有真正讨论ETag和缓存,它只是提到ETag可以用于缓存。您有示例吗?

的深入详细信息在

的深入详细信息在

上默认情况下,数据上下文的MergeOption设置为AppendOnly。这意味着重新请求只会添加新实体,而不会更新现有实体。尝试将MergeOption设置为覆盖更改:

this.context.MergeOption = MergeOption.OverwriteChanges;

当我注意到这一点时,这对我起了作用!如果您使用的是实时数据,则可能需要使用NotTracking选项完全关闭更改跟踪。

默认情况下,数据上下文的MergeOption设置为AppendOnly。这意味着重新请求只会添加新实体,而不会更新现有实体。尝试将MergeOption设置为覆盖更改:

this.context.MergeOption = MergeOption.OverwriteChanges;

当我注意到这一点时,这对我起了作用!如果您使用的是实时数据,那么您可能希望使用NoTracking选项完全关闭更改跟踪。

Hrmmm,我将等待关于这一问题的答案,因为我不知道实际数据被缓存了。您是否绝对确定缓存的是数据,而不是对用于访问数据的每个基于REST的URI进行LINQ处理的查询?Hrmmm,我将等待关于这一问题的答案,因为我不知道缓存的是实际数据。您是否绝对确定缓存的是数据,而不是针对用于访问数据的每个基于REST的URI进行LINQ处理的查询?