From 87d4077718c0449c9becf86c04db15b4d03b5fc8 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 30 Oct 2020 20:49:32 +0800 Subject: [PATCH] Update Oracle --- .../OracleTest/Demo/Demo3_Insertable.cs | 49 +++++++++++++++++++ .../OracleTest/Models/SubInsertTest.cs | 39 +++++++++++++++ Src/Asp.Net/OracleTest/OracleTest.csproj | 1 + .../InsertableProvider/SubInserable.cs | 4 +- 4 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 Src/Asp.Net/OracleTest/Models/SubInsertTest.cs diff --git a/Src/Asp.Net/OracleTest/Demo/Demo3_Insertable.cs b/Src/Asp.Net/OracleTest/Demo/Demo3_Insertable.cs index 9e3d43b07..4f995b45b 100644 --- a/Src/Asp.Net/OracleTest/Demo/Demo3_Insertable.cs +++ b/Src/Asp.Net/OracleTest/Demo/Demo3_Insertable.cs @@ -49,7 +49,56 @@ namespace OrmTest //Use Lock db.Insertable(insertObj).With(SqlWith.UpdLock).ExecuteCommand(); + Console.WriteLine("SubInsert Start"); + db.Insertable(new Order() + { + Name = "订单 1", + CustomId = 1, + Price = 100, + CreateTime = DateTime.Now, + Id = 0, + Items = new List() { + new OrderItem(){ + CreateTime=DateTime.Now, + OrderId=0, + Price=1, + ItemId=1 + } + } + }) + .AddSubList(it => it.Items.First().OrderId).ExecuteReturnPrimaryKey(); + db.CodeFirst.InitTables(); + Console.WriteLine("SubInsert Start2"); + db.Insertable(new List() { + new SubInsertTest() + { + Name="aa", + SubInsertTestItem1=new SubInsertTestItem1() { + a="nn" + }, + SubInsertTestItem=new SubInsertTestItem() + { + Name ="item" , + TestId=2 + } + }, + new SubInsertTest() + { + Name="aa", + SubInsertTestItem1=new SubInsertTestItem1() { + a="nn" + }, + SubInsertTestItem=new SubInsertTestItem() + { + Name ="item" , + TestId=2 + } + } + }) + .AddSubList(it => it.SubInsertTestItem.TestId) + .AddSubList(it => it.SubInsertTestItem1) + .ExecuteReturnPrimaryKey(); Console.WriteLine("#### Insertable End ####"); } } diff --git a/Src/Asp.Net/OracleTest/Models/SubInsertTest.cs b/Src/Asp.Net/OracleTest/Models/SubInsertTest.cs new file mode 100644 index 000000000..b287227f0 --- /dev/null +++ b/Src/Asp.Net/OracleTest/Models/SubInsertTest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class SubInsertTest + { + [SqlSugar.SugarColumn(IsPrimaryKey =true,OracleSequenceName ="Seq_id")] + public int Id { get; set; } + public string Name { get; set; } + [SqlSugar.SugarColumn(IsIgnore =true)] + public SubInsertTestItem SubInsertTestItem { get; set; } + [SqlSugar.SugarColumn(IsIgnore = true)] + public SubInsertTestItem1 SubInsertTestItem1 { get; set; } + [SqlSugar.SugarColumn(IsIgnore = true)] + public List SubInsertTestItem2 { get; set; } + } + + public class SubInsertTestItem + { + [SqlSugar.SugarColumn(IsPrimaryKey = true, OracleSequenceName = "Seq_id")] + public int Id { get; set; } + public int TestId { get; set; } + public string Name { get; set; } + } + public class SubInsertTestItem1 + { + public string a { get; set; } + } + public class SubInsertTestItem2 + { + public int OrderId { get; set; } + public int xid { get; set; } + public string a { get; set; } + } +} diff --git a/Src/Asp.Net/OracleTest/OracleTest.csproj b/Src/Asp.Net/OracleTest/OracleTest.csproj index 0ed87f38a..bea5de571 100644 --- a/Src/Asp.Net/OracleTest/OracleTest.csproj +++ b/Src/Asp.Net/OracleTest/OracleTest.csproj @@ -72,6 +72,7 @@ + diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/SubInserable.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/SubInserable.cs index 7d1fa5417..e40e1f84f 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/SubInserable.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/SubInserable.cs @@ -204,7 +204,9 @@ namespace SqlSugar continue; if (!string.IsNullOrEmpty(item.OracleSequenceName)&&this.Context.CurrentConnectionConfig.DbType==DbType.Oracle) { - pkValue = "{SugarSeq:=}"+item.OracleSequenceName+ ".nextval{SugarSeq:=}"; + var value = "{SugarSeq:=}"+item.OracleSequenceName+ ".nextval{SugarSeq:=}"; + insertDictionary.Add(item.DbColumnName, value); + continue; } if (item.PropertyInfo.Name == key) {