使用事務,咱們須要用到一個類:DbExecutor 它的命名空間在:FS.Core.Data 中,咱們先看下它的參數:app
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是框架提供的配置文件,在這裏也只是簡單說明下,留在下幾篇專門說明,這裏瞭解下就能夠了。工具
這樣,咱們的事務就完成了。操做起來至關方便。固然這裏提供的是同一個物理數據庫。spa
若是使用不一樣物理數據庫。則不能使用DbExcutor了。可使用.net 的 TransactionScope.net
QQ羣:116228666 (Farseer.net開源框架交流) 請註明:Farseer.Net
Farseer.Net是一款ORM框架 + 經常使用工具 + 擴展集合。
Farseer 意爲:先知、預言家 一般在某些場合時,提供計謀、策略。也但願該框架能給你們提供最大化的便捷。
ORM:其英文全稱是:Object(對象) Relational(關係) Mapping(映射)
Farseer.Net的目標是:快速上手、快速開發、簡單方便。
1 new User { ID = 1, Name = "張三" }.Insert()