写点什么

NHibernate 移除了对 Iesi.Collections 类库的使用,并改进了对 SQL Server 2012 的支持

  • 2014-08-29
  • 本文字数:1388 字

    阅读完需:约 5 分钟

NHibernate 已经发布了 4.0 的 GA(Gammer)版,它提供了对.NET 4.0 的支持,移除了对 Iesi.Collections 类库的使用,并且加入了对某些 SQL Server 2012 特性的支持,例如序列(Sequence)及查询分页。

本次新版本的发布共包含三个主要变化:首先,新版本的 NHibernate 是基于.NET 4.0 创建的,这是一个破坏性的改变。由于这一变化,原先进行类映射时所使用的 lesi.Collection 类库中所定义的 ISet 类就被.NET 基础类库中的泛型类型 ISet所取代了。对于非泛型集合的持久化支持也同样被移除了。在.NET 4.0 版本之前,基础类库中还没有定义 ISet 这个接口,而当时 NHibernate 刚刚才从 Hibernate 移植到.NET 平台上。这也是在 NHibernate 中包含了对 lesi.Collections 类库的依赖的关键原因之一。由于.NET 4.0 中引入了 ISet这个接口,这个类库的引用就显得多余了,因此被最终移除。

请注意:NHibernate在内部仍然保持了对lesi.collections 类库的引用,但对于大多数用例来说,开发者们都可以直接使用.NET 基础类库即可完成任务。

此外,4.0 版本现在能够支持 ODP.NET ,即 Oracle 的托管 Data Provider for .NET,此外还支持 SQL Server 2012 中一些独有的新特性:

  • 序列 —— 类似于它对 Oracle 和 Postgres 实现的支持(在 2012 之前,SQL Server 中还不存在序列的概念,只有自动生成数字的主键列可以自增值)。
  • “iif”方法
  • 查询分页 —— 确保当 NH LINQ 中使用 Skip() 和 Take() 方法时,转换为 SQL Server 中相应的 OFFSET 和 FETCH 查询语法。

除此之外,新版本还包括一些新的改进。包括以下一些内容:

  • 在使用 QueryOver 进行转换时可以使用 Math.Round() 方法了。
  • 支持 SQL Server 所独有的 power() 函数。
  • NHibernateUtil 中的静态字段不再封装为可空类型(NullableType)或 IType 接口类型。
  • 支持 Postgresql 中的 Trigonometric 函数
  • Save/Update/SaveOrUpdate 等方法会加入一些新的重载,以实体名称作为参数。
  • 在多对多关系中也可使用 Where() 语法。

总的来说,新版本包括了超过一百个 bug 修复以及各种小改进,有一些改动有可能会造成破坏性改变。请务必阅读关于这次发布的说明,或者从 NH 的 JIRA 网站上获取完整的变更列表。

下一步计划

通过快速浏览 NH 的 JIRA 网站后,我们发现 4.1.0 版本的部分工作已经开始进行了,接下来会有一些有趣的新特性陆续到来:

  • 对 Oracle 12c 独有语法的支持。Oracle 12c 支持标识列、新的分页关键字(FETCH FIRST 与 OFFSET),以及一些新的类型(VARCHAR2、NVARCHAR2、RAW 等等)。
  • PrePersist 与 PreUpdate 属性(类似于 Hibernate 中对应的标注方式)
  • 可用于 WCF Data Services 的 NHibernateContext(作为 DataContext 的替代)
  • 节点中使用 property-refs

NHibernate 可能会加入对 WCF Data Services 的支持,这一点令人很感兴趣,尤其是在 WCF Data Services 的前景不明的情况下(虽然有一些非议,但 WCF Data Services 中还是加入了 EF6 的支持)。

NHibernate 是一个成熟的开源对象关系映射框架,它是从面向 Java 世界的 Hibernate 框架移植过来的。NHibernate 曾一度是毫无争议的首选 ORM 框架,但随着微软推出 Entity Framework,并且如今已经成为了开源产品之后,人们对于 NH 的未来也开始抱有一丝疑虑(当然,还是有许多人争辩之后依然推崇NHibernate)。

查看英文原文: NHibernate Lets Go Of Iesi.Collections, Improves Support For SQL Server 2012

2014-08-29 08:132228
用户头像

发布了 428 篇内容, 共 182.6 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

Java中高级核心知识全面解析,Java大厂高级面试题灵魂100问

Java 程序员 后端

服务网格在百度核心业务大规模落地实践

百度开发者中心

最佳实践 方法论 Service Mesh 服务网格

30G上亿数据的超大文件,如何快速导入生产环境,全网疯传

Geek_f90455

Java 程序员 后端

35岁+程序员就该被辞退,kafka入门与实践百度云网盘

Geek_f90455

Java 程序员 后端

AcWing 730,史上最全最精简的学习路线图

Geek_f90455

Java 程序员 后端

Element-UI 要怎么学?官方文档,阿里架构师深入讲解Java开发

JVM调优资料

Java 程序员 后端

GC Roots面试,Java教程百度云盘

JVM调优资料

Java 程序员 后端

2021 Java开发 最全笔记 建议收藏!,搞定kafka看这一篇就够了

欢喜学安卓

Java 程序员 后端

百度智能云天工物联网支持多种类数据传输,MQTT助力数据、语音、视觉应用智能化

百度大脑

人工智能

2021年1月8号,这些新技术你们都知道吗

欢喜学安卓

Java 程序员 后端

北鲲云超算平台在AlphaFold2对蛋白质研究中有何作用?

北鲲云

AcWing - 99,Java技术面试题及答案

Geek_f90455

Java 程序员 后端

GC Roots面试(1),springmvc教程视频

JVM调优资料

Java 程序员 后端

Java中的注解到底是怎么一回事?,jvm原理面试题

Java 程序员 后端

30岁程序员裸辞,真香定律

Geek_f90455

Java 程序员 后端

Java-进阶:多线程1,Java程序员必须掌握的技术

Java 程序员 后端

Java中高级核心知识全面解析,Java工程师需要掌握的技能

Java 程序员 后端

6年拉力工作经验,学了阿里P8级架构师的7,Java笔试题库及答案

Geek_f90455

Java 程序员 后端

Dubbo—SPI及自适应扩展原理,劲爆

JVM调优资料

Java 程序员 后端

Hystrix-服务容错处理:什么是Hystrix,Java最新实习面试经验总结

JVM调优资料

Java 程序员 后端

Java jdk下载安装与配置及其不同版本jdk切换,Java开发实战

JVM调优资料

Java 程序员 后端

低代码和无代码的区别

低代码小观

低代码 开发工具 无代码 低代码与无代码区别

2020全网最新SQL优化面试专题及答案,一步搞定你疑惑的数据结构与算法系列

欢喜学安卓

Java 程序员 后端

2020年五面蚂蚁,分布式架构+RPC+kafka+多线程

欢喜学安卓

Java 程序员 后端

95% 的算法都是基于这 6 种算法思想,毕向东Java教程百度云

Geek_f90455

Java 程序员 后端

hadoop,Java面试视频百度网盘

JVM调优资料

Java 程序员 后端

一款神器自助帮你换背景,超强实时人像扣图算法开源啦!

百度开发者中心

最佳实践 图像处理 开源技术

HDU1166 敌兵布阵【线段树,一个Java程序员的腾讯面试心得

JVM调优资料

Java 程序员 后端

java web 部分,Java教学视频百度云盘

Java 程序员 后端

1-7中HashMap死循环分析,透彻解析

欢喜学安卓

Java 程序员 后端

java web 部分(1),Java技术总监面试常见问题及答案

Java 程序员 后端

NHibernate移除了对Iesi.Collections类库的使用,并改进了对SQL Server 2012的支持_语言 & 开发_Roopesh Shenoy_InfoQ精选文章