使用NHibernate Linq Provider 1.0的NHibernate二级缓存

Yoa*_*. B 17 c# linq nhibernate

如何使用NHibernate Linq Provider 1.0启用NHibernate二级缓存?

二级缓存似乎只适用于ICriteria使用.

cbp*_*cbp 24

是的,我终于解决了这个问题:

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

更新 正如其他人所指出的,在NH3中,使用query.Cacheable().但是要非常小心这样做:

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

// This won't work:
query.Cacheable();
Run Code Online (Sandbox Code Playgroud)


Mau*_*fer 21

对于NHibernate 3+来说 session.Query<T>().Cacheable()