在ravendb中为文档创建自定义缓存依赖项

时间:2013-08-15 16:00:22

标签: asp.net caching ravendb cache-dependency

我正在尝试创建缓存依赖项以使我使用ASP.NET缓存缓存的某些文档到期。我想出了这个:

public class DocumentCacheDependency : CacheDependency
{
    private readonly IDisposable _Subscription;

    public DocumentCacheDependency(IDocumentStore store, string docId)
    {
        _Subscription = store.Changes().ForDocument(docId).Subscribe(OnDocumentChanged);
        FinishInit();
    }

    private void OnDocumentChanged(DocumentChangeNotification documentChangeNotification)
    {
        NotifyDependencyChanged(this, new EventArgs());
    }

    protected override void DependencyDispose()
    {
        _Subscription.Dispose();
        base.DependencyDispose();
    }
}

这是一个好主意,还是应该使用“ForDocumentsStartingWith”/“ForAllDocuments”。或者我应该创建一个索引。 答案可能取决于缓存的文档数量,所以我想我的问题是,当我注册数百个更改侦听器时,RavenDB是否可以为我开箱即用,或者客户端实际上会设置连接数量以这种方式使用db。

1 个答案:

答案 0 :(得分:2)

你可能最好不要这样做。 RavenDB已经为你做了缓存而不需要任何费用。