2009-09-03 21 views

risposta

24

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(); 
+0

Grazie CBP, vado a controllare questo fuori –

21

Per NHibernate 3+ è session.Query<T>().Cacheable()

versione
3

NH3 RC:

public IQueryable<T> Queryable<T>() 
{ 
    IQueryable<T> queryable = SessionFactory.OpenSession().Queryable<T>(); 
    queryable = queryable.Cacheable<T>(); 

    return queryable; 
}