From 113874c6afa33622091a38f3231f578cf246c293 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 3 Nov 2022 09:37:36 +0800 Subject: [PATCH] Bug : ExecuteReturnPkListAsync --- Src/Asp.Net/SqlServerTest/Program.cs | 26 +--------- .../SqlServerTest/UnitTest/UInsert2.cs | 50 ++++++++++++++++++- .../InsertableProvider/InsertableProvider.cs | 15 +++--- Src/Asp.Net/SqlSugar/Interface/Insertable.cs | 1 + 4 files changed, 60 insertions(+), 32 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/Program.cs b/Src/Asp.Net/SqlServerTest/Program.cs index 6d46a63bf..313ede6b0 100644 --- a/Src/Asp.Net/SqlServerTest/Program.cs +++ b/Src/Asp.Net/SqlServerTest/Program.cs @@ -12,31 +12,7 @@ namespace OrmTest static void Main(string[] args) { - //Demo - Demo0_SqlSugarClient.Init(); - Demo1_Queryable.Init(); - Demo2_Updateable.Init(); - Demo3_Insertable.Init(); - Demo4_Deleteable.Init(); - Demo5_SqlQueryable.Init(); - DemoN_SplitTable.Init(); - Demo6_Queue.Init(); - Demo7_Ado.Init(); - Demo8_Saveable.Init(); - Demo9_EntityMain.Init(); - DemoA_DbMain.Init(); - DemoB_Aop.Init(); - DemoC_GobalFilter.Init(); - //DemoD_DbFirst.Init();; - DemoE_CodeFirst.Init(); - DemoF_Utilities.Init(); - DemoG_SimpleClient.Init(); - DemoH_Tenant.Init(); - DemoJ_Report.Init(); - DemoL_Snowflake.Init(); - DemoM_UnitOfWork.Init(); - //Unit test - //NewUnitTest.Init(); + NewUnitTest.Init(); //Rest Data NewUnitTest.RestData(); diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UInsert2.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UInsert2.cs index 7e4864798..83b01ce61 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/UInsert2.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UInsert2.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; - +using SqlSugar; namespace OrmTest { public partial class NewUnitTest @@ -34,6 +34,54 @@ namespace OrmTest throw new Exception("unit error"); } } + var list2=db.Insertable(new List() { + new Order22() + { + Name = "a", + CreateTime = DateTime.Now, + CustomId = 1, + Price = 1 + },new Order22() + { + Name = "a", + CreateTime = DateTime.Now, + CustomId = 1, + Price = 1 + } + }).AS("Order").ExecuteReturnPkList(); + + var list3 = db.Insertable(new List() { + new Order () + { + Name = "a", + CreateTime = DateTime.Now, + CustomId = 1, + Price = 1 + },new Order() + { + Name = "a", + CreateTime = DateTime.Now, + CustomId = 1, + Price = 1 + } + }).AS("Order").ExecuteReturnPkList(); + } + + public class Order22 + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public long Id { get; set; } + /// + /// 姓名 + /// + public string Name { get; set; } + public decimal Price { get; set; } + [SugarColumn(IsNullable = true)] + public DateTime CreateTime { get; set; } + [SugarColumn(IsNullable = true)] + public int CustomId { get; set; } + [SugarColumn(IsIgnore = true)] + public List Items { get; set; } } public class Unitsdafa111 { diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index ae5da01e2..368a28e5b 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -70,18 +70,17 @@ namespace SqlSugar RestoreMapping(); return new KeyValuePair>(sql, InsertBuilder.Parameters); } - + public async Task> ExecuteReturnPkListAsync() + { + return await Task.Run(() => ExecuteReturnPkList()); + } public virtual List ExecuteReturnPkList() { var pkInfo= this.EntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey == true); Check.ExceptionEasy(pkInfo==null,"ExecuteReturnPkList need primary key", "ExecuteReturnPkList需要主键"); Check.ExceptionEasy(this.EntityInfo.Columns.Count(it => it.IsPrimarykey == true)>1, "ExecuteReturnPkList ,Only support technology single primary key", "ExecuteReturnPkList只支技单主键"); var isIdEntity = pkInfo.IsIdentity|| (pkInfo.OracleSequenceName.HasValue()&&this.Context.CurrentConnectionConfig.DbType==DbType.Oracle); - if (pkInfo.UnderType == UtilConstants.LongType) - { - return InsertPkListLong(); - } - else if (isIdEntity&&this.InsertObjs.Length==1) + if (isIdEntity&&this.InsertObjs.Length==1) { return InsertPkListIdentityCount1(pkInfo); } @@ -93,6 +92,10 @@ namespace SqlSugar { return InsertPkListWithFunc(pkInfo); } + else if (pkInfo.UnderType == UtilConstants.LongType) + { + return InsertPkListLong(); + } else { return InsertPkListGuid(pkInfo); diff --git a/Src/Asp.Net/SqlSugar/Interface/Insertable.cs b/Src/Asp.Net/SqlSugar/Interface/Insertable.cs index c0d3f9d26..9cc7ca679 100644 --- a/Src/Asp.Net/SqlSugar/Interface/Insertable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/Insertable.cs @@ -13,6 +13,7 @@ namespace SqlSugar int ExecuteCommand(); Task ExecuteCommandAsync(); List ExecuteReturnPkList(); + Task> ExecuteReturnPkListAsync(); long ExecuteReturnSnowflakeId(); List ExecuteReturnSnowflakeIdList(); Task ExecuteReturnSnowflakeIdAsync();