.NET ORM框架NHibernate Linq 1.0发布

开发
NHibernate Linq以其灵活的O/R Mapping功能成为了.NET领域最有影响力,运用最广的ORM框架之一,它在某些社区群体的受欢迎程度甚至超过了微软官方的的LINQ to SQL及Entity Framework。

近日,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,不过这还处于计划过程中。我们会追求一定程度上的兼容,但是我认为,如果要获得一些优势的话,难免会出现破坏性的改变。

 

【编辑推荐】

  1. 微软发布学术版分布式计算技术Dryad和DryadLINQ
  2. .NET方法演化史 从Delegate到Lambda再到LINQ
  3. 浅谈LINQ to SQL集成数据库语言优劣
  4. .NET 4.0 Beta 1将为PLINQ带来生机?
  5. 基于LINQ to SQL的WEB开发三层架构
责任编辑:佚名 来源: InfoQ
相关推荐

2012-03-19 10:10:55

jOOQJava

2012-04-13 09:11:13

JavajOOQ

2012-02-13 09:52:56

Java

2011-08-31 13:31:00

PythonSQLObject数据库

2012-02-27 09:17:24

JavajOOQ

2012-04-10 09:29:29

jOOQJava

2012-02-01 16:08:05

JavajOOQ

2012-01-09 10:08:10

JavajOOQ

2012-03-09 09:26:39

JavaHibernate

2009-07-29 10:17:19

NHibernate

2011-11-14 10:16:51

HTML 5

2011-11-28 09:16:24

Javajooq框架

2012-02-01 09:16:18

Java

2015-07-13 14:24:48

Kubernetes容器平台Google

2009-02-16 17:33:52

银光LinuxMoonlight 1

2012-05-07 15:07:47

Linux内核操作系统

2012-01-04 09:36:55

Java

2009-06-19 17:53:51

Spring.NET1

2011-10-21 09:50:03

NHibernate

2012-03-06 09:20:02

SpockJava
点赞
收藏

51CTO技术栈公众号