具有外部更新的NHibernate二级缓存

Szt*_*upY 4 nhibernate caching syscache

我有一个99%只读的Web应用程序,它有一个单独的服务,可以按特定的时间间隔更新数据库(比如每10分钟).该服务如何告诉应用程序使其二级缓存失效?它真的很重要吗?(我实际上并不关心我是否有过多的陈旧数据)如果我没有使缓存失效需要多长时间才能更新记录(如果使用SysCache)

jis*_*shi 9

您可以手动为特定实体,实体类型或集合部署二级缓存.

来自http://knol.google.com/k/fabio-maulo/nhibernate-chapter-16-improving/1nr4enxv3dpeq/19#

对于二级缓存,在ISessionFactory上定义了一些方法,用于驱逐实例,整个类,集合实例或整个集合角色的缓存状态.

sessionFactory.Evict(typeof(Cat), catId); //evict a particular Cat
sessionFactory.Evict(typeof(Cat));  //evict all Cats
sessionFactory.EvictCollection("Eg.Cat.Kittens", catId); //evict a particular collection of kittens
sessionFactory.EvictCollection("Eg.Cat.Kittens"); //evict all kitten collections