写点什么

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:132315
用户头像

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

关注

评论

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

OKR之剑·理念篇01: OKR带给我们的改变

vivo互联网技术

OKR 目标管理 研发管理

数据库的视图该怎么用?

阿柠xn

MySQL 数据库 视图 9月月更

Java后端每日学点系列?线程知否,List懂否,垃圾回收器晓得否

知识浅谈

线程 垃圾回收器 9月月更

智能湖仓架构实践:利用 Amazon Redshift 的流式摄取构建实时数仓

亚马逊云科技 (Amazon Web Services)

想成为数据科学家,哪些技能你必须具备?

雨果

阿里云张新涛:连接产业上下游,构建XR协作生态

阿里云弹性计算

交互 XR 视觉计算 沉浸式体验

高并发之缓存

源字节1号

软件开发

【指针内功修炼】字符指针 + 指针数组 + 数组指针 + 指针参数(一)

Albert Edison

C语言 二维数组 9月月更 指针数组 数组指针

前端高频面试题汇总(一)

loveX001

JavaScript 前端

Java进阶(二十二)使用FileOutputStream写入文件

No Silver Bullet

9月月更 FileOutputStream 写文件

数据库的schema与数据类型优化

阿柠xn

数据库 sql 高性能 优化技巧 9月月更

前端二面必会面试题(附答案)

beifeng1996

JavaScript 前端

Github点击破百万!这部《从零开始学架构》神书就此霸榜

Java-fenn

Java 程序员 java面试 Java书籍 Java面试题

MFC框架下,加密图片加载并显示功能

中国好公民st

c++ 加密 9月月更

大数据ELK(一):集中式日志协议栈Elastic Stack简介

Lansonli

ELK 9月月更

为什么阿里人成长速度极快?看完他们 Java 架构进化笔记,值得学习

Java-fenn

Java 程序员 java面试 Java学习 Java面试题

手把手教大家编译 flowable 源码

江南一点雨

Java workflow flowable

“大厂”角力移动办公系统市场,钉钉和企微向左、WorkPlus向右

BeeWorks

腾讯前端一面常考面试题合集

loveX001

JavaScript 前端

亿级日志队列回放性能测试初探

FunTester

漏洞修复实用指南

SEAL安全

开源 漏洞 安全漏洞 漏洞修复 开源漏洞

关关难过关关过!2022年BAT面试通关秘籍:面前规划+面试题集+简历优化+面经分享等!

收到请回复

Java 云计算 开源 架构 编程语言

推荐:实现 SVG 动画的 5 个 JavaScript 库~

掘金安东尼

前端 9月月更

头大了,Mysql写入数据十几秒后被自动删除了

南城FE

MySQL 前端 nodejs

预约直播 | 大规模稀疏模型演进与DeepRec

阿里云大数据AI技术

开源项目 AI技术 模型稀疏训练

关于用户 email 邮件地址是否允许有加号的问题

汪子熙

typescript 正则表达式 邮件 9月月更 输入校验

不惧繁杂背景,视频编辑服务一键实现人像抠图

HarmonyOS SDK

使用 FSM 管理 osm-edge 服务网格入口流量

Flomesh

Service Mesh 服务网格

恍然大悟,才知道什么是真正的思维导图!

博文视点Broadview

HUAWEI DevEco Testing注入攻击测试:以攻为守,守护OpenHarmony终端安全

OpenHarmony开发者

OpenHarmony

从零到一构建完整知识体系,阿里最新SpringBoot原理最佳实践真香

程序员小毕

Java spring 源码 面试 SpringBoot 2

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