diff --git a/Src/Asp.Net/SqlServerTest/Demo/Demo0_SqlSugarClient.cs b/Src/Asp.Net/SqlServerTest/Demo/Demo0_SqlSugarClient.cs index 189f027de..a63e7abc8 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Demo0_SqlSugarClient.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Demo0_SqlSugarClient.cs @@ -211,6 +211,9 @@ namespace OrmTest //SqlServer db.ChangeDatabase(it => it.DbType == DbType.SqlServer);//use sqlserver + + // Example 1 + Console.WriteLine("Example 1"); try { db.BeginTran(); @@ -241,6 +244,68 @@ namespace OrmTest Console.WriteLine(db.Queryable().Count()); } + + + // Example 2 + Console.WriteLine("Example 2"); + + var result=db.UseTran(() => + { + + db.ChangeDatabase(it => it.DbType == DbType.SqlServer);//use sqlserver + db.Deleteable().ExecuteCommand(); + Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + + db.ChangeDatabase(it => it.DbType == DbType.MySql);//use mysql + db.Deleteable().ExecuteCommand(); + Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + throw new Exception(""); + + }); + if (result.IsSuccess == false) { + Console.WriteLine("---Roll back"); + db.ChangeDatabase(it => it.DbType == DbType.SqlServer);//use sqlserver + Console.WriteLine(db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + + db.ChangeDatabase(it => it.DbType == DbType.MySql);//use mysql + Console.WriteLine(db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + } + + // Example 3 + Console.WriteLine("Example 3"); + + var result2 = db.UseTranAsync(() => + { + + db.ChangeDatabase(it => it.DbType == DbType.SqlServer);//use sqlserver + db.Deleteable().ExecuteCommand(); + Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + + db.ChangeDatabase(it => it.DbType == DbType.MySql);//use mysql + db.Deleteable().ExecuteCommand(); + Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + throw new Exception(""); + + }); + result2.Wait(); + if (result.IsSuccess == false) + { + Console.WriteLine("---Roll back"); + db.ChangeDatabase(it => it.DbType == DbType.SqlServer);//use sqlserver + Console.WriteLine(db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + + db.ChangeDatabase(it => it.DbType == DbType.MySql);//use mysql + Console.WriteLine(db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + } + Console.WriteLine("#### Distributed TransactionExample End ####"); } }