EF,NH,IN 数据层访问框架的比较

EF,NH,IN 数据层访问框架的比较

ID:40489494

大小:1.66 MB

页数:29页

时间:2019-08-03

EF,NH,IN 数据层访问框架的比较_第1页
EF,NH,IN 数据层访问框架的比较_第2页
EF,NH,IN 数据层访问框架的比较_第3页
EF,NH,IN 数据层访问框架的比较_第4页
EF,NH,IN 数据层访问框架的比较_第5页
资源描述:

《EF,NH,IN 数据层访问框架的比较》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、EF,NH,IN数据层访问框架的比较1.框架选型背景针对四川日报招标比选网比选系统的全程电子化的实现目标,要求设计出一套高效、稳定的比选系统,这就对数据库访问提升了更高的要求。原系统采用sqlserver数据库,以及ado.net的传统数据访问方式。这样在开发效率比较低下,代码健壮性得不到很好的保证。介于此,经开发团队讨论,我们在数据访问层需要采用一个开源的、健壮的、有团队维护的数据层访问框架。在数据访问框架选型时,我们必须包括以下一些标准:1.框架稳定性2.框架的运行性能3.框架维护性4.框架的开发

2、效率5.满足系统的多数据库访问要求6.框架流行度2.持久化和对象关系映射技术简介2.1什么是“持久化”和“持久层”持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。持久层(PersistenceLayer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。持久层是负责向(或者从)一个或者多个数据存储器中存储(

3、或者获取)数据的一组类和组件。这个层必须包括一个业务领域实体的模型(即使只是一个元数据模型)。不过这里有一个字需要特别强调,也就是所谓的“层”。对于应用系统而言,数据持久功能大多是必不可少的组成部分。那不就是说,我们的系统中,已经天然的具备了“持久层”概念?也许是,但也许实际情况并非如此。  之所以要独立出一个“持久层”的概念,而不是“持久模块”,“持久单元”,也就意味着,我们的系统架构中,应该有一个相对独立的逻辑层面,专著于数据持久化逻辑的实现.与系统其他部分相对而言,这个层面应该具有一个较为清晰和

4、严格的逻辑边界。1.1什么是“对象关系映射”ORM-Object/RelationalMapping,即“对象-关系映射”。对于O/R,即Object(对象)和Relational(关系型数据),表示必须同时使用面向对象和关系型数据进行开发。对象关系映射(ObjectRelationalMapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转

5、换到另外一种形式。这也同时暗示者额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少.对象-关系映射(Object/RelationMapping,简称ORM),是随着面向对象的软件开发方法发展而产生的,面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务

6、实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。让我们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(R

7、elational)。几乎所有的程序里面,都存在对象和关系数据库。在业务逻辑层和用户界面层中,我们是面向对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。当你开发一个应用程序的时候(不使用O/RMapping),你可能会写不少数据访问层的代码,用来从数据库保存,删除,读取对象信息,等等。你在DAL中写了很多的方法来读取对象数据,改变状态对象等等任务。而这些代码写起来总是重复的。如果打开你最近的程序,看看DAL代码,你肯定会看到很多近似的通用的模式。我们以保存对象的方法为例,你传

8、入一个对象,为SqlCommand对象添加SqlParameter,把所有属性和对象对应,设置SqlCommand的CommandText属性为存储过程,然后运行SqlCommand。对于每个对象都要重复的写这些代码。除此之外,还有更好的办法吗?有,引入一个O/RMapping。实质上,一个O/RMapping会为你生成DAL。与其自己写DAL代码,不如用O/RMapping。你用O/RMapping保存,删除,读取对象,O/RMapping负责生成SQ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。