From c2f1b73755e9731aee1e4deacff294d141a59666 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Tue, 17 Nov 2020 18:54:39 +0800 Subject: [PATCH] Optimize internal code --- FreeSql.DbContext/FreeSql.DbContext.xml | 9 +++++++++ .../FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs | 2 ++ .../SelectProvider/Select0ProviderReader.cs | 11 +++++++---- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index b54d4d0e..2d6d3409 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -509,5 +509,14 @@ + + + 批量注入 Repository,可以参考代码自行调整 + + + + + + diff --git a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs index 86e4eadb..cf174b9f 100644 --- a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengSelectTest.cs @@ -336,6 +336,7 @@ namespace FreeSql.Tests.Dameng var sql = query.ToSql().Replace("\r\n", ""); Assert.Equal("SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a__Type.\"GUID\", a__Type.\"PARENTID\", a__Type.\"NAME\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a LEFT JOIN \"TESTTYPEINFO\" a__Type ON a__Type.\"GUID\" = a.\"TYPEGUID\"", sql); query.ToList(); + query.ToList(true); query = select.LeftJoin(a => a.Type.Guid == a.TypeGuid && a.Type.Name == "xxx"); sql = query.ToSql().Replace("\r\n", ""); @@ -475,6 +476,7 @@ namespace FreeSql.Tests.Dameng var sql = query.ToSql().Replace("\r\n", ""); Assert.Equal("SELECT a.\"ID\", a.\"CLICKS\", a.\"TYPEGUID\", a__Type.\"GUID\", a__Type.\"PARENTID\", a__Type.\"NAME\", a.\"TITLE\", a.\"CREATETIME\" FROM \"TB_TOPIC22\" a RIGHT JOIN \"TESTTYPEINFO\" a__Type ON a__Type.\"GUID\" = a.\"TYPEGUID\"", sql); query.ToList(); + query.ToList(true); query = select.RightJoin(a => a.Type.Guid == a.TypeGuid && a.Type.Name == "xxx"); sql = query.ToSql().Replace("\r\n", ""); diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs index d4bf7c3d..ca961a7f 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs @@ -475,10 +475,13 @@ namespace FreeSql.Internal.CommonProvider Expression.GreaterThan(readExpDataIndex, dataIndexExp), Expression.Assign(dataIndexExp, readExpDataIndex) ), - Expression.IfThenElse( - Expression.NotEqual(readExpValue, Expression.Constant(null)), - Expression.Assign(curExp, Expression.Convert(readExpValue, typei)), - Expression.Assign(curExp, Expression.Constant(null, typei)) + Expression.IfThen( + Expression.NotEqual(retExp, Expression.Constant(null)), + Expression.IfThenElse( + Expression.NotEqual(readExpValue, Expression.Constant(null)), + Expression.Assign(curExp, Expression.Convert(readExpValue, typei)), + Expression.Assign(curExp, Expression.Constant(null, typei)) + ) ) }), Expression.Block(