md1*_*337 11 nhibernate fluent-nhibernate
我试图了解如何配置Fluent NHibernate以启用查询,实体等的二级缓存......同时使用自动化.关于如何做到这一点的网上信息非常少.当然可以在逐个映射类时完成它......但是如何自动化呢?
这是我目前的配置代码:
AutoPersistenceModel model = AutoMap.AssemblyOf<Seminar>()
.Where(t => t.Namespace == "[MY NAMESPACE]")
.Conventions.Add(DefaultCascade.All());
Configuration config = Fluently.Configure()
.Database
(
MsSqlConfiguration.MsSql2005
.ConnectionString(@"[MY CONNECTION STRING]")
)
.Mappings(m => m.AutoMappings.Add(model))
.BuildConfiguration();
_sessionFactory = config.BuildSessionFactory();
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 7
假设您已经从NHibernate Contribution项目下载了二级缓存提供程序,您应该能够使用以下内容在自动化设置中初始化缓存.
Configuration config = Fluently.Configure()
.Database
(
MsSqlConfiguration.MsSql2005
.ConnectionString(@"[MY CONNECTION STRING]")
.Cache(c => c.UseQueryCache().ProviderClass<YourCacheProviderOfChoice>())
)
.Mappings(m => m.AutoMappings.Add(model))
.BuildConfiguration();
Run Code Online (Sandbox Code Playgroud)
选择要缓存的查询只需在Criteria实例上调用SetCacheable(true)即可.
var query = session.CreateQuery("from Blog b where b.Author = :author")
.SetString("author", "Gabriel")
.SetCacheable(true);
var list = query.List<Blog>();
Run Code Online (Sandbox Code Playgroud)
这是关于NHibernate的一级和二级缓存的史诗博客文章,很好的参考资料.
| 归档时间: |
|
| 查看次数: |
2119 次 |
| 最近记录: |