2007年12月27日

使用NHibernate中的几个小问题

最近在用 NHibernate(NHibernate-1.2.1.GA) 作为 DAL 开发一个小项目,自己遇到一些小的问题,在这里记录一下,以作备忘。

1.如果用自动加载.hbm.xml文件的方法配置Configuration对象,则一定要把.hbm.xml文件的“生成操作”设置为“嵌入的资源”。虽然之前遇到过,但这次改了架构,又忘了这个这个最容易忽略的地方。(害我多花了两分钟,找出这个问题)

2.这个项目中,我将 Model,IDAL,NHibernateDAL 层独立出来,曾出现 "NHibernate could not instantiate cacheprovider" 的异常,后来调试发现 InnerException 竟然是说找不到dll程序集,后来将表现层添加了 NHibernate.Caches.SysCache 的引用,问题解决。(也可以采用另一个缓存程序集)。
由此可猜测,缓存不是在 DAL 层,而是在表现层完成的;这当然也是符合逻辑的,如果还需要表现层向下通信以实现缓存的话,那效率肯定会打折扣。

3. 关于 ISession.Load<T>(object id) 和 ISession.Get<T>(object id),二者的区别体现在对二级缓存的利用上。之前使用时没出问题也就没特别注意,这次调试时每次Load的数据都是和数据库中不一致的,后来查了些资料,发现前者对二级缓存利用的更加充分,以致于关闭程序之后再重新打开时,它还能读取上一次运行时的缓存。这个小问题使我花费的时间最长。

今天先记到这里,以后再补充更详细的经验。

posted @ 2007-12-27 16:13 _煒 阅读(25) | 评论 (0)编辑

2007年12月20日

第一篇

在CnBlog的第一個腳印,紀念。

posted @ 2007-12-20 23:39 _煒 阅读(9) | 评论 (0)编辑

  
<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

与我联系

常用链接

留言簿

随笔分类

随笔档案

文章分类

搜索

最新评论

阅读排行榜

评论排行榜