如何使用NHibernate Linq Provider 1.0啓用NHibernate的二級緩存?使用NHibernate Linq Provider 1.0的NHibernate二級緩存
二級緩存似乎只適用於ICriteria的使用。
如何使用NHibernate Linq Provider 1.0啓用NHibernate的二級緩存?使用NHibernate Linq Provider 1.0的NHibernate二級緩存
二級緩存似乎只適用於ICriteria的使用。
是的,我終於摸索這一個:
public IQuerable<T> CreateLinqQuery()
{
var query = session.Linq<T>();
query.QueryOptions.SetCachable(true);
return query;
}
更新 正如其他人所指出的那樣,NH3,使用query.Cacheable()。 但是要非常小心地做這樣的:
// Correct way:
query = query.Cacheable();
// This won't work:
query.Cacheable();
對於NHibernate的3+是session.Query<T>().Cacheable()
NH3 RC版本:
public IQueryable<T> Queryable<T>()
{
IQueryable<T> queryable = SessionFactory.OpenSession().Queryable<T>();
queryable = queryable.Cacheable<T>();
return queryable;
}
感謝CBP,我就檢查了這一點 – 2009-09-10 10:35:11