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


    导航

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

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

    下一篇: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轻量级开源框架 入门篇: Where条件的终极使用

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

    广告时间

    QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net

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

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

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

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

    1 new User { ID = 1, Name = "张三" }.Insert()
  • 相关阅读:
    字符串截取例子 大小写转换 拼接例子 把oc转成c语言
    字符串比较 是否相同 大小 创建字符串 例子
    数组于字典:把多个字典放到数组中
    考核7
    Delphi 单元不能被循环引用
    Delphi ADOQuery无法更新定位行问题(其它数据库访问控件类似)
    SQL远程服务器操作数据
    s​p​c​o​m​m​属​性​详​解
    dxSkinController动态调入皮肤
    RegisterClass与GetClass
  • 原文地址:https://www.cnblogs.com/steden/p/4075762.html
Copyright © 2020-2023  润新知