ORM:
Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)
对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换
优势:
隐藏了数据访问细节,“封闭”的通用数据库交互,使得我们的通用数据库交互变得简单易行,并且完全不用考虑该死的SQL语句。
缺点:
虽然隐藏了数据层面的业务抽象,但并不能完全的屏蔽掉数据库层的设计, 对于复杂查询,ORM仍然力不从心
NHibernate(每一个实体类都会对应一个xml格式的映射文件):
从数据库底层来持久化.Net对象到关系型数据库,NHibernate自动产生SQL语句,并确保对象提交到正确的表和字段中去.大量减少开发时人工使用SQL和ADO.NET处理数据的时间.
Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)
对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换
在关系型数据库和业务实体对象之间作一个映射,然后通过实体对象的操作来实现数据库的操作。
当前ORM框架主要有三种:Hibernate(Nhibernate),iBATIS.net,EclipseLink。
优势:
隐藏了数据访问细节,“封闭”的通用数据库交互,使得我们的通用数据库交互变得简单易行,并且完全不用考虑该死的SQL语句。
缺点:
虽然隐藏了数据层面的业务抽象,但并不能完全的屏蔽掉数据库层的设计, 对于复杂查询,ORM仍然力不从心
NHibernate(每一个实体类都会对应一个xml格式的映射文件):
从数据库底层来持久化.Net对象到关系型数据库,NHibernate自动产生SQL语句,并确保对象提交到正确的表和字段中去.大量减少开发时人工使用SQL和ADO.NET处理数据的时间.
iBATIS.NET
半自动化的ORM实现,提供了较为灵活数据访问和面向对象特性
OTHER:1.DAAB:微软Enterprise Library中的一个应用程序块,在不知道具体的数据库系统的情况下进行
2.Castle ActiveRecord:底层封装了NHibernate,改用Attribute来代替配置文件,这样就不用再像NHibernate那样去编写复杂的配置文件。
3.NBear:包含的组件不仅仅是数据持久层,还包含了IOC,分布式组件和Web组件
附加介绍:DLinq
DLinq虽然不能算是开源框架,但是说到数据持久,还是提一下比较好,DLinq是微软下一代数据库集成查询语言,在这之前微软曾经尝试过ObjectSpace,最后是不了了之。DLinq实现的方式有点类似于前面说过的ActiveRecord,不支持使用外部的XML配置文件,而是使用了Attribute的方式