最近把各种ORM又看了一轮,包括Java下的,还是Elinq最合用!
原因有三:
1、跨数据库的Linq,强大。Linq的方便是谁用谁知道,但官方只支持SqlServer。NHibernate据说也有插件,但似乎不成熟。其他的还有Alinq,应该也不差。Java社区虽强,但限于Java语法,在ORM层面比C#还是差了一大截呀。
2、自带的DBHelper支持原生Sql的执行,灵活。在我看来,凡是不支持原生Sql,标榜纯OO,或者能执行Sql但返回值强制对应实体的都是不考虑现实的理想主义者。很多时候,传统Sql语句是不可代替的,也不是所有场合都能预先写好实体类。特别是统计分析的场合。
3、还配套有DBContex的代码生成器,快捷。这东西自己也能写,但如果作者已经把配套工具都写好了,更适合马上用于真实项目。这方面ALinq做得也很强,有自己的设计器。
而且ELinq开源免费,国人的开源作品,很是给力,不支持不行呀。
话说,目前体验过的持久层有:
Net:Ado.net、NHibernate、NewLife(同事的)、DBEngine(同事的)、ELinq、ALinq、BLIT.Data(自己封装的)
Java:JDBC、ActiveDB(JFinal)
ROR:ActiveDB
PHP:。。。太久不记得了,似乎是对官方的简单封装