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

导航

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

上一篇:Farseer.net轻量级开源框架 入门篇: 查询数据详解

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

DbExecutor 的使用

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

1         /// <summary>
2         ///     构造函数
3         /// </summary>
4         /// <param name="dbType">数据库类型</param>
5         /// <param name="connnection">数据库连接字符串</param>
6         /// <param name="commandTimeout">数据库执行时间,单位秒</param>
7         /// <param name="tranLevel">开启事务等级</param>
8         public DbExecutor(DataBaseType dbType, string connnection, int commandTimeout, IsolationLevel tranLevel = IsolationLevel.Unspecified)
DataBaseType  是框架定义的数据库类型枚举,也是目前框架所能支持的数据库。
 1     /// <summary>
 2     ///     数据库类型
 3     /// </summary>
 4     public enum DataBaseType
 5     {
 6         /// <summary>
 7         ///     SqlServer数据库
 8         /// </summary>
 9         [Display(Name = "System.Data.SqlClient")]
10         SqlServer,
11
12         /// <summary>
13         ///     Access数据库
14         /// </summary>
15         [Display(Name = "System.Data.OleDb")]
16         OleDb,
17
18         /// <summary>
19         ///     MySql数据库
20         /// </summary>
21         [Display(Name = "MySql.Data.MySqlClient")]
22         MySql,
23
24         /// <summary>
25         ///     Xml
26         /// </summary>
27         [Display(Name = "System.Linq.Xml")]
28         Xml,
29
30         /// <summary>
31         ///     SQLite
32         /// </summary>
33         [Display(Name = "System.Data.SQLite")]
34         SQLite,
35
36         /// <summary>
37         ///     Oracle
38         /// </summary>
39         [Display(Name = "System.Data.OracleClient")]
40         Oracle,
41     }

事务使用举例

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

1         //最原始的方式。
2         using (DbExecutor db = new DbExecutor(DataBaseType.SqlServer, "User ID=sa;Password=123456;Pooling=true;Data Source=.;Initial Catalog=Farseer;", 30, System.Data.IsolationLevel.ReadCommitted))
3         {
4             new Users { UserName = "李四" }.Insert(db);
5             RoleDB.Data.Delete(db);
6             RoleDB.Data.Update(new RoleDB { Caption = "管理员" }, db);
7
8             db.Commit();
9         }
1         // 利用DbFactory,创建了DbExecutor对象
2         // 第1个参数 0 代表的是数据库配置:DbConfig 的索引项。在:~/App_Data/Db.config 中
3         using (DbExecutor db = DbFactory.CreateDbExecutor(0, System.Data.IsolationLevel.ReadCommitted))
4         {
5             // ..........这里是事务的操作
6             db.Commit();
7         }
1         // 利用Users泛型,创建了DbExecutor对象
2         // 会通过对Users缓存的反射结果,查询这个实体的数据库连接方式。(其实还是转到数据库配置索引项)
3         using (DbExecutor db = DbFactory.CreateDbExecutor<Users>(System.Data.IsolationLevel.ReadCommitted))
4         {
5             // ..........这里是事务的操作
6             db.Commit();
7         }

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

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

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

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

导航

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

上一篇:Farseer.net轻量级开源框架 入门篇: 查询数据详解

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

时间: 2024-08-12 20:42:07

Farseer.net轻量级开源框架 入门篇:事务的使用中级篇的相关文章

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

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 查询数据详解 下一篇:Farseer.net轻量级开源框架 中级篇: 事务的使用 这里,我把一些常用Where用到的条件都写在这里,方便大家学习 1 // 这是最常用的 属性判断 2 Users.Data.Where(o => o.ID == 1) 3 Users.Data.Where(o => o.ID > 1) 4 Users.Data.Where(o => o

Farseer.net轻量级开源框架 入门篇:添加数据详解

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 分类逻辑层 下一篇:Farseer.net轻量级开源框架 入门篇: 修改数据详解 前面讲的大多数是原理及说明,大家在理解上会比较枯燥,接下来的几篇,倾向于实战,会比较有意思些. 这里的话,还是拿Users实体类来讲解在我们框架的几种添加方式. Insert的几种方式 1 Users info = new Users(); 2 info.UserName = "张三";

Farseer.net轻量级开源框架 入门篇:逻辑层的选择

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 入门篇:增.删.改.查操作演示 下一篇:Farseer.net轻量级开源框架 入门篇: 实体类 当我们创建了一个实体类后,就需要继承其中一个基类:BaseModel.BaseCacheModel.BaseCateModel.只有继承了这三个基类的其中一个时,框架才能对实体建立数据库关系映射(也就是ORM).并且实现了对数据库的CURD的操作. 本框架与其它一些框架不同之处在于,对

Farseer.net轻量级开源框架 入门篇:使用前说明

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 框架性能测试 下一篇:Farseer.net轻量级开源框架 入门篇: 增.删.改.查操作演示 本篇讲解使用或者学习Farseer前需要知道一些事项: 在后续很多演示中,使用了很多扩展方法.但作者并没有明确出哪些是扩展的方法.所以读者要注意.在使用框架的时候,都需要引用扩展方法的命名空间:using FS.Extend; 为了方便,扩展方法统一放到FS.Extend中,在这里特别说

Farseer.net轻量级开源框架 入门篇:删除数据详解

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 修改数据详解 下一篇:Farseer.net轻量级开源框架 入门篇: 查询数据详解 相对于修改,删除则简单的多: 1 // 字段值指定 加 1 2 Users.Data.Where(o => o.ID == 1).Delete(); 1 Users.Data.Delete(1); 1 var lst = new List<int> { 1, 2, 3, 4, 5 }; 2

Farseer.net轻量级开源框架 入门篇:查询数据详解

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 删除数据详解 查询列表的几种方式 1 // 字段值指定 加 1 2 Users.Data.Where(o => o.ID == 1).ToList(); 1 // 查询前10条数据 2 Users.Data.ToList(10); 1 // 批量查询 2 var lst = new List<int> { 1, 2, 3, 4, 5 }; 3 Users.Data.ToL

Farseer.net轻量级开源框架 入门篇:修改数据详解

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 添加数据详解 下一篇:Farseer.net轻量级开源框架 入门篇: 删除数据详解 Update的几种方式(基本) 1 Users info = new Users(); 2 info.UserName = "张三"; 3 info.PassWord = "密码"; 4 5 // 指定用户ID为1的的数据进行修改. 6 Users.Data.Wher

Farseer.net轻量级开源框架 入门篇:分类逻辑层

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 缓存逻辑层 下一篇:Farseer.net轻量级开源框架 入门篇: 添加数据详解 分类逻辑层 分类逻辑层,主要用在一些需要支持无限递归的树数据.树数据是:必须有一个根节点,根节点有无限个子节点,没有节点限制.比如我们常用的有:(频道.xxx分类) 这里与BaseCacheModel的操作是完全一致.唯一不同的是,BaseCateModel是继承自ModelCateInfo.这个类

Farseer.net轻量级开源框架 V1.x 入门篇:表的数据操作

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:视图实体类映射 前言 先跟大家抱歉下,教程迟迟没有更新,因为一个人的精力实在有限(借口?好吧,我认了). 想要Farseer.Net发展的更好,需要认真.客观解读群里朋友们的建议,实际上也确实是这样,有些思想.功能自己确实没想到(必境我自己所能接触的业务场景是非常有限的). 当然在考虑Farse