• 课程讲师:风舞烟

  • 课程分类:.NET框架

  • 适合人群:初级

  • 课时数量:19课时

  • 更新程度:完成

  • 服务类型:C类(普通服务类课程)

  • 用到技术:FluentData

  • 涉及项目:FluentData轻量级


需要更多相关资料可以联系 Q2748165793

课程介绍

3.1 关于ORM

一、什么是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))。。。。。。 

    世上没有驴是不吃草的(又想好又想巧,买个老驴不吃草),任何优势的背后都隐藏着缺点,这是不可避免的。问题在于,我们是否能容忍缺点 


3.2、几种常见的ORM框架的比较 

几种常用框架的比较 

以上就是市面上比较常见的.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功能和易用性介于NHibernate与EF之间。 

相比较而言,我们更推荐使用FluentData,一个轻量级开源的.NET ORM数据持久化框架 

3.3、什么是FluentData? 

FluentData:一种使用Fluent API的新型轻量级ORM模型 

FluentData 是微型 ORM(micro-ORM)家族的一名新成员,旨在比大型 ORM(full ORM)更加易用。FluentData 于本月推出,它使用 fluent API 并支持 SQL Server、SQL Azure、Oracle 和 MYSQL。 

FluentData 的设计者 Lars-Erik Kindblad 谈到: 

 

当前市面上的 ORM 框架,如 Entity Framework 和 NHibernate,都过于复杂而且难于学习。此外,由于这些框架自身抽象的查询语言以及从数据库到 .NET 对象的映射太过麻烦,导致它们生成的 SQL 都很低效。 

FluentData 另辟蹊径,它是一个轻量级框架,拥有简单的 fluent API 并且很容易学会。 

与其他微型 ORM(如 Dapper 和 Massive)类似,FluentData 关注性能和易用性。它允许开发人员拥有对 SQL 较多的控制,而不是依赖 ORM 进行自动生成。它不仅可以使用 SQL 来执行查询、增添和更新操作,还可以支持使用存储过程和事务。根据文档描述,FluentData 可以在不改动已有结构的情况下,与任何业务对象一同工作。

 以下是 FluentData 的一些其他特性: 

· 多结果集(Multiple Result Set):在一次数据库操作下返回多个数据集; 

· 开发人员可使用强类型对象或动态对象; 

· 可为创建时需要特殊处理的复杂对象自定义实体工厂(Custom Entity Factory); 

· 具有添加其他数据库支持的能力。 

FluentData 需要 .NET 4.0,并支持 SQL Server、SQL Azure、SQL Server Compact 以及使用 .NET 驱动的 Oracle 和 MySQL。 想要了解进一步信息,如代码示例和免费下载,请访问CodePlex 站点上的 FluentData。(http://fluentdata.codeplex.com/) 

 

3.4、课程培训目标:

1. 全面了解C# 4.5 语法新特性

2.全面深入了解什么是FluentData,以及如何使用FluentData结合.NET进行数据库应用开发

3.通过实例融会贯通FluentData API语法,特性以及最佳开发实践

3.5、适合学员

1.能够熟练使用C#语法开发简单数据库应用。

2.了解SQL语句,SQL Server或MySQL,Oracle中任一种即可