2009-09-03 15 views

Odpowiedz

24

Tak, wreszcie pracował ten jeden:

public IQuerable<T> CreateLinqQuery() 
{ 
    var query = session.Linq<T>(); 
    query.QueryOptions.SetCachable(true); 
    return query; 
} 

Aktualizacja Jak inni zwrócili uwagę, w NH3, użyj query.Cacheable(). jednak być bardzo ostrożnym, aby zrobić to w ten sposób:

// Correct way: 
query = query.Cacheable(); 

// This won't work: 
query.Cacheable(); 
+0

Dzięki CBP, będę to sprawdzić –

21

Dla NHibernate 3+ to session.Query<T>().Cacheable()

wersja
3

NH3 RC:

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

    return queryable; 
}