【发布时间】:2009-09-03 18:51:31
【问题描述】:
如何使用 NHibernate Linq Provider 1.0 启用 NHibernate 二级缓存?
二级缓存似乎只适用于 ICriteria 用法。
【问题讨论】:
标签: c# linq nhibernate
如何使用 NHibernate Linq Provider 1.0 启用 NHibernate 二级缓存?
二级缓存似乎只适用于 ICriteria 用法。
【问题讨论】:
标签: c# linq nhibernate
是的,我终于解决了这个问题:
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();
【讨论】:
对于 NHibernate 3+,它是 session.Query<T>().Cacheable()
【讨论】:
NH3 RC 版本:
public IQueryable<T> Queryable<T>()
{
IQueryable<T> queryable = SessionFactory.OpenSession().Queryable<T>();
queryable = queryable.Cacheable<T>();
return queryable;
}
【讨论】: