时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

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

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

关注

评论

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

KubeCon China 2024 现场见!与华为云原生专家畅聊服务治理,一起Meet The Authors !

华为云原生团队

云计算 容器 云原生 KubeCON

2024-08-21:用go语言,给定一个从 0 开始索引的整数数组 nums 和一个整数 k,请设计一个算法来使得数组中的所有元素都大于或等于 k,返回所需的最少操作次数。 每次操作可以执行以下步骤

福大大架构师每日一题

福大大架构师每日一题

14 个Spring cache注解:缓存与业务解耦实战(必须收藏)

肖哥弹架构

Java spring 缓存 注解应用

HarmonyOS地图服务:深度解析其丰富功能与精准导航实力

白晓明

HarmonyOS NEXT Map Kit

AI制作PPT软件有哪些?这款中文版Gamma值得推荐!

职场工具箱

效率工具 职场 PPT 办公软件 AI生成PPT

为财务团队合理进行角色分配和技术培训

智达方通

财务管理 财务转型

揭秘移动IP:为何定位精度多停留在城市级?

郑州埃文科技

IP IP地址

数据库运维实操优质文章分享(含Oracle、MySQL等) | 2024年7月刊

墨天轮

MySQL 数据库 oracle sql postgresql

跟着 iLogtail 学习高质量软件建设

阿里巴巴云原生

阿里云 云原生

云手机在亚马逊店铺运营中能发挥什么作用

Ogcloud

云手机 海外云手机 云手机海外版 亚马逊运营 亚马逊云手机

观测云:千人千面的监控观测平台

观测云

观测云 监控观测

JimuReport 积木报表 v1.8.0 版本发布

JEECG低代码

云手机解决了TikTok哪些账号运营难题?

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 tiktok运营

三问AI手机:什么意图?怎么识别?何种框架?

脑极体

AI

漫谈端到端测试

老张

软件测试 质量保障 端到端 测试方法

1场Keynote,7场技术演讲 | Karmada云原生多云容器编排引擎闪耀亮相 KubeCon China 2024

华为云原生团队

云计算 容器 云原生 KubeCON

MES系统在铜加工行业的应用

万界星空科技

mes 万界星空科技 铜业 制造业工厂 铜加工

《黑神话》火到破纪录,老黄都要到游戏展秀一把:全景光追英伟达独享,同款技术还有20+游戏在路上

Openlab_cosmoplat

AI 游戏

青椒云上线《黑神话:悟空》专属游戏云电脑,免安装,即点即用!仅需2.98/h

青椒云云电脑

云电脑 云电脑平台 黑神话悟空

望繁信科技入选2024年第3批上海市高新技术成果转化项目名单

望繁信科技

数字化转型 流程挖掘 高新技术企业 流程智能 数字北极星

【IoTDB 线上小课 06】列式写入=时序数据写入性能“利器”?

Apache IoTDB

iLogtail 开源两周年:感恩遇见,畅想未来

阿里巴巴云原生

阿里云 云原生 iLogtail

更快更强,SLS 推出高性能 SPL 日志查询模式

阿里巴巴云原生

阿里云 云原生 日志服务

今日分享丨浅谈iGIX并行启动

inBuilder低代码平台

Flow Simulator 案例分享:换热器的一维仿真

Altair RapidMiner

人工智能 HPC 仿真 智能制造 altair

华为云CodeArts API:API管理一体化平台 7月新特性介绍

API 华为云

Cohere 创始人:语音是下一代用户界面;OpenAI 开放 GPT-4o 定制新功能丨 RTE 开发者日报

声网

万界星空科技注塑行业MES解决方案

万界星空科技

制造业 mes 万界星空科技 注塑MES 注塑行业

短视频生成与AI的结合应用,Web/App RPA 智能化应用

霍格沃兹测试开发学社

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