NHibernate缓存过期
我目前使用定制开发的ORM,并计划搬到nhibernate 目前,我使用L1会话级缓存和L2应用程序级缓存 每当一级缓存从二级缓存请求对象时,它都会检查数据库自上次加载以来是否已修改,并且仅在已修改的情况下加载NHibernate缓存过期,nhibernate,caching,Nhibernate,Caching,我目前使用定制开发的ORM,并计划搬到nhibernate 目前,我使用L1会话级缓存和L2应用程序级缓存 每当一级缓存从二级缓存请求对象时,它都会检查数据库自上次加载以来是否已修改,并且仅在已修改的情况下加载 我可以用NHibernate做这个吗。简而言之,缓存不会伤害我,因为它总是获取最新的数据,并为我节省对象创建和加载时间。IMHO如果二级缓存仍然需要访问数据库,那么二级缓存是毫无意义的。这正是缓存的全部要点,尽可能避免触及数据库 顺便说一句,没有像您描述的那样实现缓存策略,但是NHibe
我可以用NHibernate做这个吗。简而言之,缓存不会伤害我,因为它总是获取最新的数据,并为我节省对象创建和加载时间。IMHO如果二级缓存仍然需要访问数据库,那么二级缓存是毫无意义的。这正是缓存的全部要点,尽可能避免触及数据库 顺便说一句,没有像您描述的那样实现缓存策略,但是NHibernate L2缓存是完全可插入的,因此您可以实现它。然而,我不会,因为我上面提到的原因 只有当除NHibernate之外还有其他应用程序或其他DAL访问同一数据库时,获取过时数据才是一个问题。如果是这种情况,您可以使用实现,它在内部用于在基础表中的数据更改时使缓存区域无效 如果是在服务器场中运行的单个应用程序,请使用 如果只有一个NHibernate应用程序实例进入数据库,那么就可以了,您不必担心会得到过时的数据 另见: