c# - batch - Caché de segundo nivel de NHibernate con NHibernate Linq Provider 1.0
nhibernate fetch (3)
Para NHibernate 3+ es session.Query<T>().Cacheable()
¿Cómo habilitar la memoria caché de segundo nivel de NHibernate con NHibernate Linq Provider 1.0?
El caché de segundo nivel parece funcionar solo con el uso de ICriteria.
Sí, finalmente trabajé este:
public IQuerable<T> CreateLinqQuery()
{
var query = session.Linq<T>();
query.QueryOptions.SetCachable(true);
return query;
}
Actualización Como otros lo han señalado, en NH3, use query.Cacheable (). Sin embargo ten mucho cuidado de hacerlo así:
// Correct way:
query = query.Cacheable();
// This won''t work:
query.Cacheable();
Versión NH3 RC:
public IQueryable<T> Queryable<T>()
{
IQueryable<T> queryable = SessionFactory.OpenSession().Queryable<T>();
queryable = queryable.Cacheable<T>();
return queryable;
}