更换NHibernate新版本所要做的改动

对象持久化组件NHibernate在不断升级,现在已经是2.0.1版本了,这个过程中解决了不少问题。

不知大家发现了没有,旧版本是不支持One-To-One配置中的property-ref属性的,而新版本里的Castle.Core.dll,就解决了此问题。另外,新版本中增加了nhibernate-configuration.xsd和nhibernate-mapping.xsd,将它们拷贝到C:/Program Files/Microsoft Visual Studio 8/Xml/Schemas这个目录中,可在编写nhibernate配置文件时得到intellisense支持。有需要的朋友们可以一试。

对于已使用该组件的用户来讲,更换时首先需要在项目引用中,把旧版本的dll手动删除,然后加入相应的新版本dll,重新生成一遍。

不这么做编译无法通过,会报错:程序集“WareHouse.DataAccess, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”所使用的“NHibernate, Version=2.0.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4”版本高于所引用的程序集“NHibernate, Version=1.2.0.2002, Culture=neutral, PublicKeyToken=aa95f207798dfdb4”的版本。这是因为.Net是“静态库”形式,因此以前老版本的动态库会保留在你的工程目录中,当更新了NHB组件后,程序自己保留的那部分老版本静态库相对版本过老了。

我的程序里用的是NHibernate.dll、Iesi.Collections.dll、log4net.dll、Castle.DynamicProxy2.dll(注意这里改名了,旧版本是Castle.DynamicProxy.dll),所以只将这四个库文件拷入项目文件夹中,并添加到引用。

更换后需要改动的是:
ICriterion[]所属的命名空间变为NHibernate.Criterion;
新版的CreateSQLQuery返回IQuery而不是ISQLQuery;
命名空间NHibernate.Exception则改名为NHibernate.Exceptions;
因此使用到的地方连同配置文件app.config都需要修改。

  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值