AICon 深圳站聚焦 Agent 技术、应用与生态,大咖分享实战干货 了解详情
写点什么

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

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

关注

评论

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

Casper Network 推出 “DevRewards” 计划:允许所有开发者赚取激励

股市老人

替代企业微信、钉钉等平台,WorkPlus打造企业完美的私有化部署解决方案

BeeWorks

保护你的游戏服务器——游戏盾的功能和优势

德迅云安全_初启

神经元科技发布AI Agents—“萨蔓莎”

科技热闻

技术写作:漏斗内容策略、认知博客、支柱内容、研究报告、通用门控内容、电子书和教程

小万哥

程序人生 软件工程 博客 后端开发 技术写作

​我的 2023 年度自我总结

Java 工程师蔡姬

程序员 大厂 年终总结

跨界宠粉!五粮液包机送“五粉”直击湖南跨年晚会!

新消费日报

流行的机器学习算法——线性回归

小齐写代码

macOS 上最完整、最通用、最强大的菜单栏日历:Calendar 366 II

Rose

Mac日历软件 苹果破解软件下载 Calendar 366 II中文版 Calendar 366 II Mac下载 菜单栏日历工具

思维导图、头脑风暴:MindNode for mac完整中文破解版

Rose

mac思维导图软件 MindNode 5 MindNode破解版下载 MindNode for mac

C 语言数组教程:定义、访问、修改、循环遍历及多维数组解析

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

旧年好,祝新年更好

阿里云CloudImagine

云计算 视频云

DAPP矩阵公排模式系统开发

l8l259l3365

笔记:写Flink SQL Helper时学到的一些姿势

泊浮目

vscode ANTLR antlr4 FlinkSQL

揭密支付安全:为什么你的交易无法被篡改

支付系统 签名验签 支付安全 支付系统设计与实现

Mac操作系统的专业音频处理软件:Hit'n'Mix RipX DAW PRO

Rose

音频处理器 苹果破解软件下载 Mac音频处理 Hit'n'Mix RipX DAW PRO

Rectangle Pro for Mac(原Hookshot光标快速移动和管理窗口的工具)

Rose

Rectangle Pro for Mac mac窗口管理工具 Hookshot光标

CodeWhisperer: 让开发效率翻倍的AI助手

不会算法。

INFINI Labs 产品更新 | Console 数据迁移支持 Percentiles 均匀分区

极限实验室

console 极限科技 产品更新发布

2023 总结:我在上海做程序员的第八年

拭心

android 程序员 年度总结

RocksDB深度解析

俞凡

架构

终于!极狐GitLab 支持 ARM 啦!

极狐GitLab

什么是数据驱动?它和模型驱动、领域驱动、元数据驱动、DSL驱动之间有什么区别?

canonical

领域驱动设计 低代码 领域驱动 Nop平台

IINA for Mac:功能强大的开源媒体播放器

Rose

mac视频播放器 IINA下载 好用的苹果媒体播放器 IINA for Mac下载

炫酷鼠标悬停随机渐变文本动画效果

南城FE

CSS 前端 css动画

Adobe Audition(Au)如何扫描 VST3、VST 和 Audio Units 增效工具?

Rose

文心一言 VS 讯飞星火 VS chatgpt (169)-- 算法导论13.2 2题

福大大架构师每日一题

福大大架构师每日一题

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