From 5b65a17be03014d8d32de1b672bbf5eaeb51a7f1 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Tue, 29 Mar 2022 20:40:00 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=AE=8C=E5=96=84=20InsertDict=20=E7=AD=89?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E6=93=8D=E4=BD=9C=E5=8A=9F=E8=83=BD=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/FreeSql.DbContext.xml | 9 -------- .../SqlServer/Curd/SqlServerInsertTest.cs | 23 +++++++++++++++++++ FreeSql/Extensions/FreeSqlGlobalExtensions.cs | 2 +- FreeSql/Internal/UtilsExpressionTree.cs | 2 +- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index bdd16ff9..da7ace6b 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -538,14 +538,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertTest.cs index 44c3f049..5849fa92 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertTest.cs @@ -36,6 +36,8 @@ namespace FreeSql.Tests.SqlServer public void InsertDictionary() { var fsql = g.sqlserver; + fsql.Delete().AsTable("table1dict").Where("1=1").ExecuteAffrows(); + Dictionary dic = new Dictionary(); dic.Add("id", 1); dic.Add("name", "xxxx"); @@ -55,6 +57,27 @@ namespace FreeSql.Tests.SqlServer Assert.Equal(@"INSERT INTO [table1]([id], [name]) VALUES(1, N'xxxx')", sql3); var sql4 = fsql.InsertDict(diclist).AsTable("table1").NoneParameter().ToSql(); Assert.Equal(@"INSERT INTO [table1]([id], [name]) VALUES(1, N'xxxx'), (2, N'yyyy')", sql4); + + Assert.Equal(1, fsql.InsertDict(dic).AsTable("table1dict").ExecuteAffrows()); + Assert.Equal(1, fsql.DeleteDict(dic).AsTable("table1dict").ExecuteAffrows()); + Assert.Equal(1, fsql.InsertDict(dic).AsTable("table1dict").NoneParameter().ExecuteAffrows()); + Assert.Equal(1, fsql.DeleteDict(dic).AsTable("table1dict").ExecuteAffrows()); + + Assert.Equal(2, fsql.InsertDict(diclist).AsTable("table1dict").ExecuteAffrows()); + Assert.Equal(2, fsql.DeleteDict(diclist).AsTable("table1dict").ExecuteAffrows()); + Assert.Equal(2, fsql.InsertDict(diclist).AsTable("table1dict").NoneParameter().ExecuteAffrows()); + Assert.Equal(2, fsql.DeleteDict(diclist).AsTable("table1dict").ExecuteAffrows()); + + + var dicRet = fsql.InsertDict(dic).AsTable("table1dict").ExecuteInserted(); + dicRet = fsql.DeleteDict(dic).AsTable("table1dict").ExecuteDeleted(); + dicRet = fsql.InsertDict(dic).AsTable("table1dict").NoneParameter().ExecuteInserted(); + dicRet = fsql.DeleteDict(dic).AsTable("table1dict").ExecuteDeleted(); + + dicRet = fsql.InsertDict(diclist).AsTable("table1dict").ExecuteInserted(); + dicRet = fsql.DeleteDict(diclist).AsTable("table1dict").ExecuteDeleted(); + dicRet = fsql.InsertDict(diclist).AsTable("table1dict").NoneParameter().ExecuteInserted(); + dicRet = fsql.DeleteDict(diclist).AsTable("table1dict").ExecuteDeleted(); } [Fact] diff --git a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs index 7cc4c2bb..f4f2eae7 100644 --- a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs +++ b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs @@ -772,7 +772,7 @@ SELECT "); } public int ExecuteAffrows() => _insertProvider.ExecuteAffrows(); - public long ExecuteIdentity() => _insertProvider.ExecuteAffrows(); + public long ExecuteIdentity() => _insertProvider.ExecuteIdentity(); public List> ExecuteInserted() => _insertProvider.ExecuteInserted(); #if net40 diff --git a/FreeSql/Internal/UtilsExpressionTree.cs b/FreeSql/Internal/UtilsExpressionTree.cs index a9789210..6108c130 100644 --- a/FreeSql/Internal/UtilsExpressionTree.cs +++ b/FreeSql/Internal/UtilsExpressionTree.cs @@ -1507,7 +1507,7 @@ namespace FreeSql.Internal ), new[] { typeExp, indexesExp, rowExp, dataIndexExp, commonUtilExp }).Compile(); } - if (type == typeof(object) && indexes != null) + if (type == typeof(object) && indexes != null || type == typeof(Dictionary)) { Func dynamicFunc = (type2, indexes2, row2, dataindex2, commonUtils2) => {