现在的位置: 首页 > 综合 > 正文

.net ORM

2018年04月09日 ⁄ 综合 ⁄ 共 1935字 ⁄ 字号 评论关闭

ORM(Object Relational Mapping)是对象关系映射。它的实质就是将关系数据(库)中的业务数据用对象的形式表示出来,并通过面向对象(Object-Oriented)的方式将这些对象组织起来,实现系统业务逻辑的过程。在ORM过程中最重要的概念是映射(Mapping),通过这种映射可以使业务对象与数据库分离。从面向对象来说,数据库不应该和业务逻辑绑定到一起,ORM则起到这样的分离作用,使数据库层透明,开发人员真正的面向对象 。

ORM是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

一般的ORM包括以下四部分:
一个对持久类对象进行CRUD操作的API;
一个语言或API用来规定与类和类属性相关的查询;
一个规定mapping metadata的工具;
一种技术可以让ORM的实现同事务对象一起进行dirty checking, lazy association fetching以及其他的优化操作。

ORM 产品有很多,下面是比较流行的.NET ORM 产品

1.DLinQ

DLinq:.NET Language Integrated Query for Relational Data,DLinq和XLinq(for Xml)共同组成了.net 3.0的关键部分——LinQ(Language Integrated Query ),即语言级集成查询能力。

DLinq是在分析了ObjectSpaces的反馈之后重新设计的ORM Solutions,作为更先进的查询数据库得到对象并且持久化对象的方式,DLinq将不再使用ObjectSpaces的mapping文件方式,而是使用了attribute 来进行mapping的定义。当然现在也有一些采用attribute 方式的Solutions,如XPO:http://www.devexpress.com/Products/NET/XPO/。不过DLinq的第一大特点将是任何ORM方案难以匹敌的,那就是语言级别的查询集成。这是目前ORM阵营(无论是.net、java或者其他)中都难以做到的。

 

2. NHibernate  开源

3.Grove    免费.对VS2003,VS2005都有Toolkit支持,保持着更新进度,适当关注)

 

4. ActiveRecord

是Castle中的一个子项目,现在的版本是RC1。它同样是一个非常优秀的持久层框架,在底层封装了NHibernate,改用Attribute来代替配置文件,这样就不用再像NHibernate那样去编写复杂的配置文件。

5.iBATIS.NET分为DataMapper和DataAccess两部分,应该说DataMapper是这个框架的核心,DataMapper使用XML文件来实现从实体到SQL statements的映射,学习起来非常简单,是用DataMapper后,我们可以自由的使用SQL语句或者存储过程。

DataAccess允许我们通过一个简单的接口来操作数据,而不必了解底层实现的细节

6.DAAB是微软Enterprise Library中的一个应用程序块,能够帮助我们实现通用的数据访问.

 

有人曾经总结过很多:

.NET Persistence
BBADataObjects
DataObjects.NET
Data Tier Modeler for .NET
DotNorm
Eldorado.NET
Enterprise Core Objects (ECO?)
Entity Broker
eXpress Persistent Objects for .NET
FastObjects.NET
JC Persistent Framework
LLBLGen Pro
ModelWorks
Nhibernate
Nolics.NET
Norm
Norpheme
ObjectBroker
ObjectSpaces
ObjectSpark
Objectz.NET
OJB.NET
OPF.Net (Object Persistent Framework)
ORM.NET
Pragmatier Data Tier Builder
RapTier
Sisyphus Persistence Framework
TierDeveloper
Bob.NET
ObjectPersistor.NET
Genome

抱歉!评论已关闭.