使用一个表和四个查询设置fluent nhibernate系统缓存的正确方法?

使用一个表和四个查询设置fluent nhibernate系统缓存的正确方法?,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我的场景非常简单,我有一个表,其中包含大约20个产品,我想使用Fluent NHibernate将它们添加到二级缓存(SysCache)中。我用4种不同的方式查询这个表,所以我想我应该每隔一段时间把整个东西都放在缓存中,以减少对数据库的访问 我的4个问题是: 分页的全部(开始,最大值) 在特定日期之前或之后获取产品的ByDate(日期) ById(id) 别名 我已经使用下面的代码在fluent配置中启用了SysCache,并将适当的配置添加到web.config MsSqlConfigurat

我的场景非常简单,我有一个表,其中包含大约20个产品,我想使用Fluent NHibernate将它们添加到二级缓存(SysCache)中。我用4种不同的方式查询这个表,所以我想我应该每隔一段时间把整个东西都放在缓存中,以减少对数据库的访问

我的4个问题是:

  • 分页的全部(开始,最大值)
  • 在特定日期之前或之后获取产品的ByDate(日期)
  • ById(id)
  • 别名
  • 我已经使用下面的代码在fluent配置中启用了SysCache,并将适当的配置添加到web.config

    MsSqlConfiguration.MsSql2008.Cache(c => c.ProviderClass<SysCacheProvider>()
                                             .UseQueryCache())
    
    现在我如何从这里开始?我是否必须将setcacable(true)添加到所有4个查询中?这是正确的方法吗

    我认为应该有一种方法来缓存All()查询,然后指向上面的4个查询,使用缓存的All()进行查询。也许我的假设完全错误,每个查询都需要在查询级别上使用setcacable(true)单独添加到缓存中

    在这种情况下,设置缓存的正确方法是什么


    谢谢

    单独启用查询缓存。没有内置的快捷方式

    当然,您可以添加一个扩展方法,或者使用一个实现这一点的基类,但这并不值得:大规模缓存很少能提高性能

    Cache.ReadWrite().Region("testregion");