From 47a8d137c69012226ac55084fd9fe858effa25ff Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sun, 1 Oct 2017 21:38:19 +0800 Subject: [PATCH] Update Oracle --- Src/Asp.Net/OracleTest/Program.cs | 2 +- .../Oracle/Insertable/OracleInsertable.cs | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/OracleTest/Program.cs b/Src/Asp.Net/OracleTest/Program.cs index d33c1f064..f8305740b 100644 --- a/Src/Asp.Net/OracleTest/Program.cs +++ b/Src/Asp.Net/OracleTest/Program.cs @@ -39,7 +39,7 @@ namespace OrmTest /***Demo***/ OrmTest.Demo.Query.Init(); - //OrmTest.Demo.Insert.Init(); + OrmTest.Demo.Insert.Init(); //OrmTest.Demo.Delete.Init(); //OrmTest.Demo.Update.Init(); //OrmTest.Demo.DbFirst.Init(); diff --git a/Src/Asp.Net/SqlSugar/Realization/Oracle/Insertable/OracleInsertable.cs b/Src/Asp.Net/SqlSugar/Realization/Oracle/Insertable/OracleInsertable.cs index 74629fdff..b87cfd34f 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Oracle/Insertable/OracleInsertable.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Oracle/Insertable/OracleInsertable.cs @@ -11,6 +11,20 @@ namespace SqlSugar { return this.EntityInfo.Columns.Where(it => it.OracleSequenceName.IsValuable()).Select(it => it.DbColumnName).ToList(); } + protected string GetSeqName() + { + return this.EntityInfo.Columns.Where(it => it.OracleSequenceName.IsValuable()).Select(it => it.OracleSequenceName).First(); + } + public override int ExecuteReturnIdentity() + { + InsertBuilder.IsReturnIdentity = true; + PreToSql(); + string sql = InsertBuilder.ToSqlString(); + RestoreMapping(); + var count = Ado.ExecuteCommand(sql, InsertBuilder.Parameters == null ? null : InsertBuilder.Parameters.ToArray()); + var result = (this.GetIdentityKeys().IsNullOrEmpty() || count == 0) ? 0 : Ado.GetInt(" SELECT "+GetSeqName()+".currval FROM DUAL"); + return result; + } protected override void PreToSql() { var identities = GetIdentityKeys();