编写自定义缓存机制是个好主意吗?

时间:2013-08-27 14:19:33

标签: nhibernate caching

假设:

  • 我将NHibernate用于Web应用程序
  • 我的Web应用程序中的数据库实体由“Orgnanization”分隔,因为它们是创建的,而且是由它们使用的。 (来自一个组织的用户无法访问另一个组织的实体)。
  • 数据库实体有一个简单的PK
  • 我的NHibernate SessionFactory是应用程序级别的单例。
  • 我的NHibernate会话在Web请求开始时打开,并在结束时关闭。
  • 商业服务是无国籍的。
  • 由于以上所有原因,我们正在使用数据库实体,如下所示:

    var entity = repository.Load(entityId,currentUserId);

问题:

  • 是否有一种有用的方法来缓存请求的数据库实体?
  • 在存储库中编写自己的缓存机制是一个好主意 使用存储在HttpContext中的线程安全哈希表?

1 个答案:

答案 0 :(得分:0)

我不会在存储库级别实现这种缓存。您正在引入对HttpContext的依赖,如果您想在测试中执行控制器操作,或者甚至只是在利用您的存储库的控制台应用程序中编写一些作业,这将非常棘手。

你有没有看过NHibernate's 2nd level cache