2009-09-03 121 views

回答

24

是的,我終於摸索這一個:

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

感謝CBP,我就檢查了這一點 – 2009-09-10 10:35:11

21

對於NHibernate的3+是session.Query<T>().Cacheable()

3

NH3 RC版本:

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

    return queryable; 
}