From a05c43cfb04ef2ebc061d50a7cbf93f2555767a8 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 1 Sep 2017 12:54:02 +0800 Subject: [PATCH] Update Insertable --- Src/Asp.Net/SqlServerTest/UnitTest/Insert.cs | 2 +- .../InsertableProvider/InsertableProvider.cs | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Insert.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Insert.cs index ecd4ccb8a..c8e2d4aa0 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/Insert.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Insert.cs @@ -37,7 +37,7 @@ namespace OrmTest.UnitTest //Insert reutrn Command Count - var t2 = db.Insertable(insertObj).ExecuteCommand(); + var t2 = db.Insertable(insertObj).ExecuteReturnEntity(); db.IgnoreColumns = null; //Only insert Name diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index d658b4486..c86a9ee1e 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -63,14 +63,8 @@ namespace SqlSugar } public T ExecuteReturnEntity() { - var result = InsertObjs.First(); - var identityKeys = GetIdentityKeys(); - if (identityKeys.Count == 0) { this.ExecuteCommand(); return result; } - var idValue = ExecuteReturnBigIdentity(); - Check.Exception(identityKeys.Count > 1, "ExecuteReutrnEntity does not support multiple identity keys"); - var identityKey = identityKeys.First(); - this.Context.EntityProvider.GetProperty(identityKey).SetValue(result, idValue, null); - return result; + ExecuteCommandIdentityIntoEntity(); + return InsertObjs.First(); } public bool ExecuteCommandIdentityIntoEntity() { @@ -80,7 +74,12 @@ namespace SqlSugar var idValue = ExecuteReturnBigIdentity(); Check.Exception(identityKeys.Count > 1, "ExecuteCommandIdentityIntoEntity does not support multiple identity keys"); var identityKey = identityKeys.First(); - this.Context.EntityProvider.GetProperty(identityKey).SetValue(result, idValue, null); + object setValue= 0; + if (idValue > int.MaxValue) + setValue = idValue; + else + setValue = Convert.ToInt32(idValue); + this.Context.EntityProvider.GetProperty(identityKey).SetValue(result,setValue, null); return idValue>0; } #endregion