FluentData入门

2025-07-20

FluentData入门(一)--核心概念

DbContext类

这是FluentData的核心类,可以通过配置ConnectionString来定义这个类,如何连接数据库和对具体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类型。

自动转成实体类:

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

如果字段名中不包含下划线(\,将映射到内嵌的属性上,例如:字段名 \将映射

到属性名 \。

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

自动转换成dynamic类型:

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

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

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

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

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类型。

自动转成实体类:

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

? 如果字段名中不包含下划线(\,将映射到内嵌的属性上,例如:字段名 \将映射到属性名 \。

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

自动转换成dynamic类型:

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

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

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

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

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

FluentData入门(二)--创建DbContext

如何创建和初始化一个DbContext

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

重要配置

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

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

1: public IDbContext Context() 2: {

3: return new DbContext().ConnectionStringName(\, 4: new SqlServerProvider()); 5: }

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

1: public IDbContext Context() 2: {

3: return new DbContext().ConnectionString(

4: \, new SqlServerProvider()); 5: }

其他可以使用的Provider

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

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

FluentData入门(三)--Query 查询一组数据

返回一组dynamic对象(new in .NET 4.0)

1: List products = Context.Sql(\

返回一组强类型对象

1: List products = Context.Sql(\

返回一个自定义的Collection

1: ProductionCollection products = Context.Sql(\ProductionCollection>();

返回单个对象 返回一个dynamic对象

1: dynamic product = Context.Sql(@\

返回一个强类型对象:

1: Product product = Context.Sql(@\

返回一个DataTable:

1: DataTable products = Context.Sql(\

其实QueryMany和QuerySingle都可以用来返回DataTable,但考虑到QueryMany返回的是List,所以使用QuerySingle来返回DataTable更方便。 查询一个标量值

1: int numberOfProducts = Context.Sql(@\

返回一组标量值

1: List productIds = Context.Sql(@\

设置查询参数: 索引顺序形式的参数

1: dynamic products = Context.Sql(@\2).QueryMany();

或者

1: dynamic products = Context.Sql(@\@1\

名字形式的参数:

1: var command = Context.Sql(@\ 2: where ProductId=1\

3: .ParameterOut(\, DataTypes.String, 100); 4: command.Execute(); 5:

6: string productName = command.ParameterValue(\); 7:

8: List of parameters - in operator:

9: List ids = new List() { 1, 2, 3, 4 }; 10:

11: dynamic products = Context.Sql(@\ 12: where ProductId in(@0)\

Output 参数:

1: dynamic products = Context.Sql(@\


FluentData入门.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北京东路的日子串词

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219