Come abilitare la cache di secondo livello di NHibernate con il provider di linea Linq 1.0 di NHibernate?NHibernate Second Level Cache con NHibernate Linq Provider 1.0
La cache di secondo livello sembra funzionare solo con l'utilizzo di ICriteria.
Come abilitare la cache di secondo livello di NHibernate con il provider di linea Linq 1.0 di NHibernate?NHibernate Second Level Cache con NHibernate Linq Provider 1.0
La cache di secondo livello sembra funzionare solo con l'utilizzo di ICriteria.
Sì, ho finalmente lavorato questo fuori:
public IQuerable<T> CreateLinqQuery()
{
var query = session.Linq<T>();
query.QueryOptions.SetCachable(true);
return query;
}
Aggiornamento Come altri hanno sottolineato, in NH3, utilizzare query.Cacheable(). Tuttavia essere molto attenti a fare in questo modo:
// Correct way:
query = query.Cacheable();
// This won't work:
query.Cacheable();
Per 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;
}
Grazie CBP, vado a controllare questo fuori –