NHibernate 1.2到2.0的迁移

时间:2020-03-05 18:43:06  来源:igfitidea点击:

将应用程序从NHibernate 1.2迁移到2.0有哪些注意事项?什么是重大更改与建议的更改?

有映射问题吗?

解决方案

回答

NHibernate 2.0中的重大更改

如果我们具有良好的测试覆盖率,那就很忙。

编辑:我们今天早上升级了。没有什么大不了的。删除后,我们必须Flush()会话。 Expression名称空间已重命名为Criterion。所有这些都在上面的链接中介绍。映射无需更改。这是相当透明的。哦,到处都有交易,但是我们可能已经在这样做了。

顺便说一下,下面是对变化的有趣观察:http://codebetter.com/blogs/patricksmacchia/archive/2008/08/26/nhibernate-2-0-changes-overview.aspx

回答

我在这里找到了答案:

http://blog.domaindotnet.com/2008/08/24/nhibernate-20-gold-released-must-wait-for-linq-to-nhibernate/

从NH1.2.1GA到NH2.0.0的突破性变化

  • Nullables.NHibernate不再受支持(使用.NET 2.0的可空类型)
  • IInterceptor有其他方法。 (IsUnsaved已重命名为IsTransient)
  • 英美战略
  • 类型
  • IEntityPersister
  • IVersionType
  • IBatcher
  • IUserCollectionType
  • IEnhancedUserType
  • iPropertyAccessor
  • ValueTypeType重命名为PrimitiveType
  • 外部框架的可能重大更改
  • 各种类在名称空间之间移动
  • 各种类已被重命名(以匹配Hibernate 3.2名称)
  • ISession接口还有其他方法
  • ICacheProvider
  • 判别
  • CriteriaQueryTranslator
  • 初始化时间
  • App.config中的<nhibernate>部分不再受支持,将被忽略。现在,配置文件和App.config的配置架构相同,并且App.config节的名称为:<hibernate-configuration>
  • <hibernate-configuration>具有不同的架构,所有属性名称均被锁定
  • 配置属性不再以hibernate为前缀。如果在指定hibernate.dialect之前,现在仅指定方言
  • 所有命名查询将在初始化时进行验证,如果有任何无效查询,则将引发异常(可以根据需要禁用)
  • 更严格地检查代理类(所有公共方法必须是虚拟的)

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配

列表数量不匹配