10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

NHibernate Linq 1.0 发布

  • 2009-07-27
  • 本文字数:906 字

    阅读完需:约 3 分钟

不久之前, NHibernate Forge 宣布 NHiberante Linq 1.0 正式发布了。NHibernate 以其灵活的 O/R Mapping 功能成为了.NET 领域最有影响力,运用最广的 ORM 框架之一,它在某些社区群体的受欢迎程度甚至超过了微软官方的的 LINQ to SQL 及 Entity Framework。作为 NHibernate 团队的重要成员, NHibernate Profiler 项目的创始人 Ayende Rahien 一直致力于将 LINQ 这种高效的开发方式与 NHibernate 强大的功能进行结合。他也在博客中公开了 NHibernate Linq 1.0 正式发布的消息

过去几年,社区中呼声最高的功能便是 Linq 支持了,这里我很兴奋地宣布,NHiberante Linq 1.0 已经正式发布了。

NHiberante 的 Linq 支持基于 NHibernate Contrib 中的 Linq Provider,它已经通过了一些现有项目的考验。虽然我们还没有确定何时将其合并至 NHiberante 中,但是项目团队认为现在已经可以给用户提供产品环境质量保证的 Linq 支持了。

这次的 Linq 覆盖所有 Criteria API 的功能。由于 Criteria API 的功能有限,我们没有提供对 group join 和子查询的支持。不过 NHibernate Linq 在过去几年中多次经历了产品环境的测试,大部分人认为可以满足他们的需要。

值得注意的是,这并不是社区中唯一的 NHibernate Linq Provider 实现。 Steve Strong 也提供过一个名为 LINQ to NHibernate 的项目,您可以在 NhAddins 中获得它的代码。与前者不同的是,LINQ to NHibernate 使用了类似于 Java Hibernate 中基于 ANTLR 的方法,而 NHibernate Linq 则将 Linq 表达式转化为 Criteria API。

两套不同的 Linq Provider 实现也引起了一些评论。有人认为双方应该合作,提示用户哪些功能会产生兼容问题,例如将一些 API 标记为过期,或者将它们转移到其他命名空间下面。对此,Steve 回答道:

我目前还没有改变的打算。我经常对(NHibernate Linq)项目的作者说,基于 Criteria API 的做法会限制它的功能。我打算实现一个基于 AST 的 Linq Provider,不过这还处于计划过程中。我们会追求一定程度上的兼容,但是我认为,如果要获得一些优势的话,难免会出现破坏性的改变。

您可以在 NHibernate 项目的文件列表中下载NHibernate Linq 组件,也可以通过 InfoQ 中的专题了解更多有关 NHibernate 内容。

2009-07-27 04:204752
用户头像

发布了 157 篇内容, 共 60.8 次阅读, 收获喜欢 6 次。

关注

评论

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

云原生典型应用架构

穿过生命散发芬芳

云原生架构 三周年连更

Zebec生态发展进入加速期,拿好ZBC坐等价值兑现

股市老人

2 行代码开启 SAST,将代码漏洞定位到具体行数

极狐GitLab

DevOps DevSecOps SAST 应用安全测试 安全扫描

C++多线程编程和同步机制:详解和实例演示

小万哥

c++ 程序员 后端 多线程 同步

async/await详解

不叫猫先生

JavaScript async/await 三周年连更

PS 2020 photoshop绿色版

源字节1号

2023-05-05:给定一个无向、连通的树 树中有 n 个标记为 0...n-1 的节点以及 n-1 条边 。 给定整数 n 和数组 edges , edges[i] = [ai, bi]表示树中的

福大大架构师每日一题

golang 算法 rust

Flink应用开发

阿泽🧸

flink 三周年连更

下载LORA模型

IT蜗壳-Tango

三周年连更

1分钟学会、3分钟上手、5分钟应用,快速上手责任链框架详解 | 京东云技术团队

京东科技开发者

Netty 京东云 企业号 5 月 PK 榜

这8种常见的防火墙,分别有哪些优缺点?

wljslmz

防火墙 三周年连更

ChatGPT 何时替代码农?

酱紫的小白兔

码农 机器人 ChatGPT

Zebec生态发展进入加速期,拿好ZBC坐等价值兑现

西柚子

Markdown基础语法教程

进基的小张

学习 markdown markdown语法 markdown编辑器 基础

Java实现坦克大战1.0

timerring

Java

图像识别数据集的重要性及其分类

数据堂

Shell脚本的变量

芯动大师

Shell命令 三周年连更 shell变量

Java多线程基础

timerring

Java

【问题排查篇】一次业务问题对 ES 的 cardinality 原理探究 | 京东云技术团队

京东科技开发者

ES 京东云 企业号 5 月 PK 榜

手把手教会你 | 网络编程

TiAmo

socket通信 服务器编程 单用户模式

matlab实现通信原理

袁袁袁袁满

三周年连更

LLMs 记忆体全新升级:六大新功能全面出击,用户体验值拉满!

Zilliz

大模型时代 向量数据库 zillizcloud LLMs

Kafka性能测试初探

FunTester

海泰方圆《数字政府密码应用与数据安全合规性建设指南》顺利通过评审

电子信息发烧客

【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务

码界西柚

分布式 限流器 三周年连更 动手实现 RateLimter

服务网格(Service Mesh)是什么?

乌龟哥哥

三周年连更

【崖山论“见”】YashanDB Meetup 第2期|数据库“大心脏”融合存储引擎揭秘

YashanDB

木兰汇专访 | 网心科技联合创始人马婷:创业者的“长期主义”

网心科技

开源项目LuckyDraw分享&介绍

进基的小张

小程序 开源 开发 GitHub、 项目上线

《AGI时代的破局之道 | 社区征文》

后台技术汇

三周年征文

NHibernate Linq 1.0发布_.NET_赵劼_InfoQ精选文章