diff --git a/Src/Asp.Net/SqlServerTest/Demo/Demo0_SqlSugarClient.cs b/Src/Asp.Net/SqlServerTest/Demo/Demo0_SqlSugarClient.cs index c897eb5db..0262b9939 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Demo0_SqlSugarClient.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Demo0_SqlSugarClient.cs @@ -279,7 +279,7 @@ namespace OrmTest // Example 2 Console.WriteLine("Example 2"); - var result=db.UseTran(() => + var result = db.UseTran(() => { db.ChangeDatabase("1");//use db1 @@ -294,7 +294,8 @@ namespace OrmTest throw new Exception(""); }); - if (result.IsSuccess == false) { + if (result.IsSuccess == false) + { Console.WriteLine("---Roll back"); db.ChangeDatabase("1");//use db1 Console.WriteLine(db.CurrentConnectionConfig.DbType); @@ -307,36 +308,9 @@ namespace OrmTest // Example 3 Console.WriteLine("Example 3"); - - var result2 = db.UseTranAsync(async () => - { - - db.ChangeDatabase("1");//use db1 - await db.Deleteable().ExecuteCommandAsync(); - Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType); - Console.WriteLine(db.Queryable().Count()); - - db.ChangeDatabase("2");//use db2 - await db.Deleteable().ExecuteCommandAsync(); - Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType); - Console.WriteLine(db.Queryable().Count()); - throw new Exception(""); - - }); + Task> result2 = AsyncTranDemo(db); result2.Wait(); - if (result2.Result.IsSuccess == false) - { - Console.WriteLine("---Roll back"); - db.ChangeDatabase("1");//use sqlserver - Console.WriteLine(db.CurrentConnectionConfig.DbType); - Console.WriteLine(db.Queryable().Count()); - - db.ChangeDatabase("2");//use mysql - Console.WriteLine(db.CurrentConnectionConfig.DbType); - Console.WriteLine(db.Queryable().Count()); - } - - + // Example 4 Console.WriteLine("Example 4"); var mysqldb = db.GetConnection("1");//获取ConfigId为1的数据库对象 @@ -363,6 +337,41 @@ namespace OrmTest } Console.WriteLine("#### Distributed TransactionExample End ####"); } + + /// + ///Async tran demo + /// + /// + /// + private static async Task> AsyncTranDemo(SqlSugarClient db) + { + //need await all + var result2 =await db.UseTranAsync(async () => + { + //need await all + + db.ChangeDatabase("1");//use db1 + await db.Deleteable().ExecuteCommandAsync(); + Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + + db.ChangeDatabase("2");//use db2 + await db.Deleteable().ExecuteCommandAsync(); + Console.WriteLine("---Delete all " + db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + throw new Exception(""); + + }); + Console.WriteLine("---Roll back"); + db.ChangeDatabase("1");//use sqlserver + Console.WriteLine(db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + + db.ChangeDatabase("2");//use mysql + Console.WriteLine(db.CurrentConnectionConfig.DbType); + Console.WriteLine(db.Queryable().Count()); + return result2; + } } ///