使用NHibernate Linq Provider 1.0的NHibernate二级缓存
如何使用NHibernate Linq Provider 1.0启用NHibernate二级缓存?
二级缓存似乎仅适用于ICriteria使用。
是的,我终于解决了这个问题:
public IQuerable CreateLinqQuery() { var query = session.Linq (); query.QueryOptions.SetCachable(true); return query; }
更新正如其他人所指出的,在NH3中,使用query.Cacheable()。 但是要非常小心这样做:
// Correct way: query = query.Cacheable(); // This won't work: query.Cacheable();
对于NHibernate 3+,它是session.Query
NH3 RC版本:
public IQueryable Queryable () { IQueryable queryable = SessionFactory.OpenSession().Queryable (); queryable = queryable.Cacheable (); return queryable; }