FluentData轻量级.NET ORM持久化技术详解01- 快速入门(视频+教程)

FluentData轻量级.NET ORM持久化技术详解01- 快速入门(视频+教程)_第1张图片

一、课程导学

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

    FluentData 另辟蹊径,它是一个轻量级框架,拥有简单的 fluent API 并且很容易学会。现在越来越多的.NET企业级开发选择后端的ORM采用FluentData框架。

本系列教程将会从最基本的FluentData安装、配置开始讲起,一步步深入API使用与详细案例与性能优,全程会以【视频+教程】方式呈现,原系我本人的一某在线网站的收费课程,现打算全部公开出去。具体教程公开计划如下:

01_FluentData快速入门

02_FluentData进阶-Query查询

03_FluentData进阶-Mapping

04_FluentData进阶-多结果集&分页查询

05_FluentData进阶-Insert的三种方式

06_FluentData进阶-InsertAndUpdateBuilder&Delete操作

07_FluentData高级-如何操作存储过程

08_FluentData高级-使用事务与Entity Factory

09_FluentData高级-综合示例

      我会持续本专题,如你想要获取本套课程课件,源码可在本文后留言给我,我收到后会第一时间回复。你的支持是我持续写作的动力,如你觉得对你有帮助,欢迎点赞,收藏,转发,评论,打赏,谢谢!

二、视频

本章内容:FluentData轻量级.NET ORM持久化技术详解01- FluentData快速入门

FluentData轻量级.NET ORM持久化技术详解01- 快速入门(视频+教程)_第2张图片
微视频

视频链结:FluentData轻量级.NET ORM持久化技术详解01-FluentData快速入门(微视频)


- 腾讯视频

三、配套文字教程

3.1、什么FluentData

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

FluentData 是微型 ORM(micro-ORM)家族的一名新成员,旨在比大型 ORM(full ORM)更加易用。它使用 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

下载地址:http://fluentdata.codeplex.com/releases/view/99679

官方API:http://fluentdata.codeplex.com/documentation

3.2、核心概念

DbContext类

这是FluentData的核心类,可以通过配置ConnectionString来定义这个类,如何连接数据库和对具体的哪个数据库进行数据查询操作。

DbCommand类

这个类负责在相对应的数据库执行具体的每一个数据操作。

Events

DbContext类定义了以下这些事件:

OnConnectionClosed

OnConnectionOpened

OnConnectionOpening

OnError

OnExecuted

OnExecuting

可以在事件中,记录每个SQL查询错误或者SQL查询执行的 时间等信息。

Builders

Builder用来创建Insert, Update, Delete等相关的DbCommand实例。

Mapping

FluentData可以将SQL查询结果自动映射成一个POCO(POCO - Plain Old CLR Object)实体类,也可以转换成一个dynamic类型。

自动转成实体类:

如果字段名中不包含下划线("_"),将映射到具有相同名字的属性上,例如:字段名 "Name" 将映射到属性名 "Name"。

如果字段名中包含下划线("_"),将映射到内嵌的属性上,例如:字段名 "Category_Name" 将映射到属性名 "Category.Name"。

如果数据库字段名和属性名不一致,可以使用SQL的as让他们一致。

自动转换成dynamic类型:

对应dynamic类型,会为每个字段生成一个同名的属性,例如:字段名 "Name" 将映射到属性名 "Name"。

什么时候应该主动释放资源?

如果使用UseTransaction或者UseSharedConnection,那么DbContext需要主动释放。

如果使用UseMultiResult或者MultiResultSql,那么DbCommand需要主动释放。

如果使用UseMultiResult,那么StoredProcedureBuilder需要主动释放。

其他所有的类都会自动释放,也就是说,一个数据库连接只在查询开始前才进行,查询结束后会马上关闭。

三、快速上手

快速上手官方文档:http://fluentdata.codeplex.com/documentation

使用步骤:

第一步:引用FluentData.dll或者直接添加FluentData.cs

第二步:Create and initialize a DbContext

(创建并且初始化DBContext对象)

第三步:使用接口做相关的增删改查操作

具体来说:

如何创建和初始化一个DbContext

可以在*.config文件中配置connection string,将connection string name或者将整个connection string 作为参数传递给DbContext来创建DbContext。

重要配置

IgnoreIfAutoMapFails – IDbContext.IgnoreIfAutoMapFails返回一个IDbContext,该实例中,如果自动映射失败时是否抛出异常

通过*.config中配置的ConnectionStringName创建一个DbContext

public IDbContext Context()

{

return new DbContext().ConnectionStringName("MyDatabase",

new SqlServerProvider());

}

调用DbContext的ConnectionString方法显示设置connection string来创建

public IDbContext Context()

{

return new DbContext().ConnectionString(

"Server=MyServerAddress;Database=MyDatabase;Trusted_Connection=True;", new SqlServerProvider());

}

其他可以使用的Provider

只有通过使用不同的Provider,就可以切换到不同类型的数据库服务器上,比如

AccessProvider, DB2Provider, OracleProvider, MySqlProvider, PostgreSqlProvider, SqliteProvider, SqlServerCompact, SqlAzureProvider, SqlServerProvider.

3.3、示例代码(HelloFluentData)

代码结构:

FluentData轻量级.NET ORM持久化技术详解01- 快速入门(视频+教程)_第3张图片
HelloFluentData

核心代码:

App.config:

FluentData轻量级.NET ORM持久化技术详解01- 快速入门(视频+教程)_第4张图片
app.config

Program.cs

FluentData轻量级.NET ORM持久化技术详解01- 快速入门(视频+教程)_第5张图片
program.cs

PS: 需要代码,可以直接给我评论留言,我会另外提供,谢谢您的支持!

四、结束

FluentData轻量级.NET ORM持久化技术详解01- 快速入门(视频+教程)_第6张图片

你可能感兴趣的:(FluentData轻量级.NET ORM持久化技术详解01- 快速入门(视频+教程))