From cff0df9c118934880ac2b22501a0119d26c4b03d Mon Sep 17 00:00:00 2001 From: "610262374@qq.com" Date: Sun, 9 Jun 2019 20:14:39 +0800 Subject: [PATCH] Update Queue BUG --- Src/Asp.Net/MySqlTest/MySqlTest.csproj | 1 + Src/Asp.Net/MySqlTest/UnitTest/Main.cs | 1 + Src/Asp.Net/MySqlTest/UnitTest/UQueue.cs | 41 +++++++++++++ .../SqlServerTest/SqlServerTest.csproj | 1 + Src/Asp.Net/SqlServerTest/UnitTest/Main.cs | 1 + Src/Asp.Net/SqlServerTest/UnitTest/UQueue.cs | 41 +++++++++++++ .../Abstract/AdoProvider/AdoProvider.cs | 58 ++++++++----------- 7 files changed, 109 insertions(+), 35 deletions(-) create mode 100644 Src/Asp.Net/MySqlTest/UnitTest/UQueue.cs create mode 100644 Src/Asp.Net/SqlServerTest/UnitTest/UQueue.cs diff --git a/Src/Asp.Net/MySqlTest/MySqlTest.csproj b/Src/Asp.Net/MySqlTest/MySqlTest.csproj index e6b5a676d..ff48be43c 100644 --- a/Src/Asp.Net/MySqlTest/MySqlTest.csproj +++ b/Src/Asp.Net/MySqlTest/MySqlTest.csproj @@ -78,6 +78,7 @@ + diff --git a/Src/Asp.Net/MySqlTest/UnitTest/Main.cs b/Src/Asp.Net/MySqlTest/UnitTest/Main.cs index 3f5d2f01c..b701b7842 100644 --- a/Src/Asp.Net/MySqlTest/UnitTest/Main.cs +++ b/Src/Asp.Net/MySqlTest/UnitTest/Main.cs @@ -31,6 +31,7 @@ namespace OrmTest } public static void Init() { + Queue(); CodeFirst(); Updateable(); Json(); diff --git a/Src/Asp.Net/MySqlTest/UnitTest/UQueue.cs b/Src/Asp.Net/MySqlTest/UnitTest/UQueue.cs new file mode 100644 index 000000000..773d3d8ad --- /dev/null +++ b/Src/Asp.Net/MySqlTest/UnitTest/UQueue.cs @@ -0,0 +1,41 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OrmTest +{ + public partial class NewUnitTest + { + public static void Queue() + { + test1(); + test2(); + } + private static void test2() + { + var db = Db; + db.AddQueue("select 11"); + db.Queryable().Where(it => false).AddQueue(); + db.AddQueue("select 12"); + var list = db.SaveQueuesAsync(); + list.Wait(); + UValidate.Check(list.Result.Item1[0], "11", "Queue"); + UValidate.Check(list.Result.Item2.Count(), 0, "Queue"); + UValidate.Check(list.Result.Item3[0], "12", "Queue"); + } + + private static void test1() + { + var db = Db; + db.AddQueue("select 11"); + db.Queryable().Where(it => false).AddQueue(); + db.AddQueue("select 12"); + var list = db.SaveQueues(); + UValidate.Check(list.Item1[0], "11", "Queue"); + UValidate.Check(list.Item2.Count(), 0, "Queue"); + UValidate.Check(list.Item3[0], "12", "Queue"); + } + } +} diff --git a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj index 7d10470ae..5c6382bea 100644 --- a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj +++ b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj @@ -76,6 +76,7 @@ + diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs index c81b373f5..3f87e97f2 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs @@ -31,6 +31,7 @@ namespace OrmTest } public static void Init() { + Queue(); CodeFirst(); Updateable(); Json(); diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UQueue.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UQueue.cs new file mode 100644 index 000000000..773d3d8ad --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UQueue.cs @@ -0,0 +1,41 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OrmTest +{ + public partial class NewUnitTest + { + public static void Queue() + { + test1(); + test2(); + } + private static void test2() + { + var db = Db; + db.AddQueue("select 11"); + db.Queryable().Where(it => false).AddQueue(); + db.AddQueue("select 12"); + var list = db.SaveQueuesAsync(); + list.Wait(); + UValidate.Check(list.Result.Item1[0], "11", "Queue"); + UValidate.Check(list.Result.Item2.Count(), 0, "Queue"); + UValidate.Check(list.Result.Item3[0], "12", "Queue"); + } + + private static void test1() + { + var db = Db; + db.AddQueue("select 11"); + db.Queryable().Where(it => false).AddQueue(); + db.AddQueue("select 12"); + var list = db.SaveQueues(); + UValidate.Check(list.Item1[0], "11", "Queue"); + UValidate.Check(list.Item2.Count(), 0, "Queue"); + UValidate.Check(list.Item3[0], "12", "Queue"); + } + } +} diff --git a/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs index 751c72ebe..3c7ef1507 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/AdoProvider/AdoProvider.cs @@ -777,45 +777,39 @@ namespace SqlSugar result = GetData(typeof(T), dataReader); } List result2 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result2 = GetData(typeof(T2), dataReader); } List result3 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result3 = GetData(typeof(T3), dataReader); } List result4 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result4 = GetData(typeof(T4), dataReader); } List result5 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result5 = GetData(typeof(T5), dataReader); } List result6 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result6 = GetData(typeof(T6), dataReader); } List result7 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result7 = GetData(typeof(T7), dataReader); } builder.SqlQueryBuilder.Clear(); @@ -898,45 +892,39 @@ namespace SqlSugar result =await GetDataAsync(typeof(T), dataReader); } List result2 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result2 = await GetDataAsync(typeof(T2), dataReader); } List result3 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result3 = await GetDataAsync(typeof(T3), dataReader); } List result4 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result4 = await GetDataAsync(typeof(T4), dataReader); } List result5 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result5 = await GetDataAsync(typeof(T5), dataReader); } List result6 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result6 = await GetDataAsync(typeof(T6), dataReader); } List result7 = null; - if (DbReader.HasRows) + if (dataReader.NextResult()) { this.Context.InitMappingInfo(); - NextResult(dataReader); result7 = await GetDataAsync(typeof(T7), dataReader); } builder.SqlQueryBuilder.Clear(); @@ -1165,17 +1153,17 @@ namespace SqlSugar #endregion #region Helper - private static void NextResult(IDataReader dataReader) - { - try - { - dataReader.NextResult(); - } - catch - { - // Check.Exception(true, ErrorMessage.GetThrowMessage("Please reduce the number of T. Save Queue Changes queries don't have so many results", "请减少T的数量,SaveQueueChanges 查询没有这么多结果")); - } - } + //private static void NextResult(IDataReader dataReader) + //{ + // try + // { + // dataReader.NextResult(); + // } + // catch + // { + // // Check.Exception(true, ErrorMessage.GetThrowMessage("Please reduce the number of T. Save Queue Changes queries don't have so many results", "请减少T的数量,SaveQueueChanges 查询没有这么多结果")); + // } + //} private void ExecuteProcessingSQL(ref string sql, SugarParameter[] parameters) { var result = this.ProcessingEventStartingSQL(sql, parameters);