NHibernate';s的二级缓存是否与连接提供程序一起工作?

NHibernate';s的二级缓存是否与连接提供程序一起工作?,nhibernate,Nhibernate,我知道NHibernate的二级缓存在SessionFactory级别工作。我在NHibernate配置中使用连接提供程序来处理我的多租户环境。我想知道二级缓存如何与连接提供程序交互。也就是说,它是智能地为每个单独的连接字符串维护缓存,还是所有连接共享同一个缓存 显然,共享同一个缓存是一个巨大的禁忌,因为同一个查询将根据它访问的数据库返回不同的结果 二级缓存的生存时间与会话工厂而不是单个会话相关联。一旦实体通过其唯一id加载且二级缓存处于活动状态,则该实体可用于(同一会话工厂的)所有其他会话 因

我知道NHibernate的二级缓存在SessionFactory级别工作。我在NHibernate配置中使用连接提供程序来处理我的多租户环境。我想知道二级缓存如何与连接提供程序交互。也就是说,它是智能地为每个单独的连接字符串维护缓存,还是所有连接共享同一个缓存

显然,共享同一个缓存是一个巨大的禁忌,因为同一个查询将根据它访问的数据库返回不同的结果

二级缓存的生存时间与会话工厂而不是单个会话相关联。一旦实体通过其唯一id加载且二级缓存处于活动状态,则该实体可用于(同一会话工厂的)所有其他会话

因此,第二级只能通过同一会话工厂的会话工作


请查看更多详细信息

谢谢。我已经读过那篇文章,但因为它没有特别提到连接提供者,我希望可能会有例外。不幸的是,由于这个原因,连接提供程序似乎与二级缓存完全不兼容。是的,在nhibernate探查器中也可以看到同样的情况。它只能监视会话的调用。