您的位置:首页 > 其它

Farseer.net轻量级开源框架 中级篇:事务的使用

2014-11-06 13:39 204 查看
导航

目 录:Farseer.net轻量级开源框架 目录

上一篇:Farseer.net轻量级开源框架 入门篇: Where条件的终极使用

下一篇:Farseer.net轻量级开源框架 中级篇: 执行SQL语句

DbExecutor 的使用
使用事务,我们需要用到一个类:DbExecutor 它的命名空间在:FS.Core.Data 中,我们先看下它的参数:

/// <summary>
///     构造函数
/// </summary>
/// <param name="dbType">数据库类型</param>
/// <param name="connnection">数据库连接字符串</param>
/// <param name="commandTimeout">数据库执行时间,单位秒</param>
/// <param name="tranLevel">开启事务等级</param>
public DbExecutor(DataBaseType dbType, string connnection, int commandTimeout, IsolationLevel tranLevel = IsolationLevel.Unspecified)


DataBaseType  是框架定义的数据库类型枚举,也是目前框架所能支持的数据库。


/// <summary>
///     数据库类型
/// </summary>
public enum DataBaseType
{
/// <summary>
///     SqlServer数据库
/// </summary>
[Display(Name = "System.Data.SqlClient")]
SqlServer,

/// <summary>
///     Access数据库
/// </summary>
[Display(Name = "System.Data.OleDb")]
OleDb,

/// <summary>
///     MySql数据库
/// </summary>
[Display(Name = "MySql.Data.MySqlClient")]
MySql,

/// <summary>
///     Xml
/// </summary>
[Display(Name = "System.Linq.Xml")]
Xml,

/// <summary>
///     SQLite
/// </summary>
[Display(Name = "System.Data.SQLite")]
SQLite,

/// <summary>
///     Oracle
/// </summary>
[Display(Name = "System.Data.OracleClient")]
Oracle,
}


事务使用举例
现在我们看看是如何使用的,这里使用了两个实体,即两张表

//最原始的方式。
using (DbExecutor db = new DbExecutor(DataBaseType.SqlServer, "User ID=sa;Password=123456;Pooling=true;Data Source=.;Initial Catalog=Farseer;", 30, System.Data.IsolationLevel.ReadCommitted))
{
new Users { UserName = "李四" }.Insert(db);
RoleDB.Data.Delete(db);
RoleDB.Data.Update(new RoleDB { Caption = "管理员" }, db);

db.Commit();
}


// 利用DbFactory,创建了DbExecutor对象
// 第1个参数 0 代表的是数据库配置:DbConfig 的索引项。在:~/App_Data/Db.config 中
using (DbExecutor db = DbFactory.CreateDbExecutor(0, System.Data.IsolationLevel.ReadCommitted))
{
// ..........这里是事务的操作
db.Commit();
}


// 利用Users泛型,创建了DbExecutor对象
// 会通过对Users缓存的反射结果,查询这个实体的数据库连接方式。(其实还是转到数据库配置索引项)
using (DbExecutor db = DbFactory.CreateDbExecutor<Users>(System.Data.IsolationLevel.ReadCommitted))
{
// ..........这里是事务的操作
db.Commit();
}


DbFactory会根据数据库的类型,创建对应的服务。具体的使用说明,留在下几篇专门说明,这里了解下就可以了。

DbConfig是框架提供的配置文件,在这里也只是简单说明下,留在下几篇专门说明,这里了解下就可以了。

这样,我们的事务就完成了。操作起来相当方便。当然这里提供的是同一个物理数据库。

如果使用不同物理数据库。则不能使用DbExcutor了。可以使用.net 的 TransactionScope

导航

目 录:Farseer.net轻量级开源框架 目录

上一篇:Farseer.net轻量级开源框架 入门篇: Where条件的终极使用

下一篇:Farseer.net轻量级开源框架 中级篇: 执行SQL语句

广告时间
QQ群:116228666 (Farseer.net开源框架交流) 请注明:[b]Farseer.Net[/b]

Farseer.Net是一款ORM框架 + 常用工具 + 扩展集合。

Farseer 意为:先知、预言家 通常在某些场合时,提供计谋、策略。也希望该框架能给大家提供最大化的便捷。

ORM:其英文全称是:Object(对象) Relational(关系) Mapping(映射)

Farseer.Net的目标是:快速上手、快速开发、简单方便。

new User { ID = 1, Name = "张三" }.Insert()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: