FluentData - 轻量级.NET ORM持久化技术解决方案

FluentData是一个轻量级的.NET ORM库,支持多种数据库,如SQL Server、Oracle和MySQL等。本文通过代码示例展示了如何进行查询、插入、更新和删除等数据库操作,以及使用事务和存储过程等功能。
摘要由CSDN通过智能技术生成
FluentData - 轻量级.NET ORM持久化技术解决方案
 
目录: 
 
一、什么是ORM? 
二、使用ORM的优势 
三、使用ORM的缺点 
四、NET下的ORM框架有哪些? 
五、几种常用框架的比较 
六、什么是FluentData? 
七、快速上手如何使用FluentData? 
八、提供资源下载 

内容: 
 

一、什么是ORM? 

ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。 
 
二、使用ORM的优势 
优势一、 隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心。他使得我们的通用数据库交互变得简单易行,并且完全不用考虑该死的SQL语句。快速开发,由此而来。 
 
优势二、ORM使我们构造固化数据结构变得简单易行。 
 
         在ORM年表的史前时代,我们需要将我们的对象模型转化为一条一条的SQL语句,通过直连或是DB helper在关系数据库构造我们的数据库体系。而现在,基本上所有的ORM框架都提供了通过对象模型构造关系数据库结构的功能。这,相当不错。 
 
三、使用ORM的缺点 
第一:无可避免的,自动化意味着映射和关联管理,代价是牺牲性能(早期,这是所有不喜欢ORM人的共同点)。现在的各种ORM框架都在尝试使用各种方法来减轻这块(LazyLoad,Cache),效果还是很显著的。 
第二:面向对象的查询语言(X-QL)作为一种数据库与对象之间的过渡,虽然隐藏了数据层面的业务抽象,但并不能完全的屏蔽掉数据库层的设计,并且无疑将增加学习成本. 
第三:对于复杂查询,ORM仍然力不从心。虽然可以实现,但是不值的。视图可以解决大部分calculated column,case ,group,having,order by, exists,但是查询条件(a and b and not c and (d or d))。。。。。。 
 
       世上没有驴是不吃草的(又想好又想巧,买个老驴不吃草),任何优势的背后都隐藏着缺点,这是不可避免的。问题在于,我们是否能容忍缺点 
 
四、.NET下的ORM框架有哪些? 
现在市面上针对.NET ORM框架越来越多 
微软自家的LINQ to SQL, ADO.NET Entity Framework不多说。  
 
商业: 
 
1.LightSpeed(免费版比较垃圾。表限制8个。另此厂商有NHibernate Designer工具) 
 
http://www.mindscapehq.com/products/lightspeed  
 
2. Entityspaces(支持Access数据库,比较看好)。 
 
http://www.entityspaces.net/portal/Home.aspx  
3.OpenAccess(有比较给力的免费版。) 
 
http://www.telerik.com/products/orm.aspx  
 
4.eXpressPersistent Objects(XPO)(支持Access) 
 
http://www.devexpress.com/products/NET/ORM/  
5.DataObjects.Net(自称对LINQ支持比较给力。但支持数据库比较少。有老版本的开源版) 
 
http://dataobjects.net/ 
 
6.LLBLGen Pro (虽然支持的数据库比较多。但LINQ to SQL 只能用于MS SQL SERVER) 
 
http://www.llblgen.com/defaultgeneric.aspx  
7.LinqConnect , Entity Developer 和 dotConnect Universal (产品比较乱。对LINQ支持比较给力。有自动生成代码和可视化的工具。) 
 
http://www.devart.com/dotconnect/  
8.DataDirect Connect for ADO.NET(这个是ORM吗?应该和微软的产品合用) 
 
http://www.datadirect.com/products/net/index.html  
 
9.ALINQ(国人开发。前期反编译了微软的SQL to SQL。后来自己写了各数据库provider发展而成。有免费版。中小型项目都可以用。但国人开发产品似乎充满困境。作者也开发了NHIbernate的代码生成器) 
 
http://www.alinq.org/ 
 
开源 
 
1.NHibernate(大名鼎鼎,发展不错。有很多书可学。)  
 
http://nhforge.org/Default.aspx 
 
2.Castle ActiveRecord (建立在NHibernate之上,用.net attribute 映射。不过基本都用NHibernate了。Castle有好多项目可学习参考) 
 
http://www.castleproject.org/castle/projects.html 
 
3.SubSonic (性能是问题。更新缓慢) 
 
http://subsonicproject.com/  
 
4. Opf3(貌似不更新了,可以学习用) 
 
http://opf3.codeplex.com/  
 
 
5.MyBatis.NET (也不更新了。) 
http://code.google.com/p/mybatisnet/ 
 
 
 
6.BLToolkit(网站貌似被和 谐。这个看介绍挺不错。支持的数据库也不少。性能据说也行。但似乎国内没人用。) 
 
http://bltoolkit.net/  
https://github.com/igor-tkachev/bltoolkit 
 
 
 
7.MyGeneration(代码自动生成工具和ORM。有各种模板。停止更新了) 
 
http://www.mygenerationsoftware.com/portal/default.aspx  
 
五、几种常用框架的比较 
以上就是市面上比较常见的.net ORM框架。其实比较完美的ORM框架应该是满足: 
 
1.对象与数据库的映射 
2.对象缓存 
3.可视化设计和代码生成工具 
4.支持多数据库 
5.动态查询 
6.延迟加载 
7.非侵入式持久化 
8.性能优良 
9.支持存储过程和事务 
10.多面向对象框架支持 
 
ORM框架确实很方便,但发现也有其不足之处,比如多表联合查询,对视图和存储过程的处理不理想。整体性能低于面向SQL语句。 
以上几种框架比较常用的应该是NHibernate,微软的EF及MyBatis.NET和FluentData。 
上述几个框架各有优缺点 
如:NHibernate 师出名门,大名鼎鼎的Hibernate厂商出品的专门针对.NET的ORM框架,优点是:功能强大,资料齐全,缺点是配置复杂,学习成本高 
微软的EF自然是在VS开发中首推的,优点是和VS IDE集成很好,缺点是性能较NHiberte低,据说6.0后,性能明显加强,甚至于超过NHibernate,但本人未测,另外,对其他数据库的支持需要安装第三方插件,还有个人感觉也过于宠大,使用起来,不够灵活。MyBatic.NET功能和易用性介于
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值