mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-01 00:05:28 +08:00 
			
		
		
		
	- 修复 UseGenerateCommandParameterWithLambda 子查询 IN bug;#900
This commit is contained in:
		| @@ -3,7 +3,7 @@ | ||||
| Public Class g | ||||
|  | ||||
|     Shared sqlserverLazy As Lazy(Of IFreeSql) = New Lazy(Of IFreeSql)(New Func(Of IFreeSql)(Function() New FreeSqlBuilder() _ | ||||
|         .UseConnectionString(DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3") _ | ||||
|         .UseConnectionString(DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true") _ | ||||
|         .UseAutoSyncStructure(True) _ | ||||
|         .UseMonitorCommand(Sub(cmd) Trace.WriteLine(vbCrLf & "线程" & Thread.CurrentThread.ManagedThreadId & ": " & cmd.CommandText)) _ | ||||
|         .UseLazyLoading(True) _ | ||||
|   | ||||
| @@ -8,7 +8,7 @@ public class g | ||||
| { | ||||
|  | ||||
|     static Lazy<IFreeSql> sqlserverLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder() | ||||
|         .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10") | ||||
|         .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10;TrustServerCertificate=true") | ||||
|         .UseAutoSyncStructure(true) | ||||
|         .UseMonitorCommand( | ||||
|             cmd => | ||||
|   | ||||
| @@ -6,7 +6,7 @@ using Xunit; | ||||
| namespace FreeSql.Tests.AdoNetExtensions.SqlConnectionExtensions { | ||||
| 	public class Methods { | ||||
|  | ||||
| 		string _connectString = "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=5"; | ||||
| 		string _connectString = "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=5;TrustServerCertificate=true"; | ||||
|  | ||||
| 		public Methods() { | ||||
| 			g.sqlserver.CodeFirst.SyncStructure<TestConnectionExt>(); | ||||
|   | ||||
| @@ -11,7 +11,7 @@ namespace FreeSql.Tests.DataContext.SqlServer | ||||
|         public SqlServerFixture() | ||||
|         { | ||||
|             sqlServerLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder() | ||||
|              .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=2") | ||||
|              .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=2;TrustServerCertificate=true") | ||||
|               //.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=(localdb)\\mssqllocaldb;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10") | ||||
|               .UseAutoSyncStructure(true) | ||||
|               .UseLazyLoading(true) | ||||
|   | ||||
| @@ -18,7 +18,7 @@ namespace FreeSql.Tests | ||||
|         public void WithLambdaParameter01() | ||||
|         { | ||||
|             using (var fsql = new FreeSql.FreeSqlBuilder() | ||||
|                 .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=6") | ||||
|                 .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=6;TrustServerCertificate=true") | ||||
|                 .UseAutoSyncStructure(true) | ||||
|                 .UseGenerateCommandParameterWithLambda(true) | ||||
|                 .UseMonitorCommand( | ||||
| @@ -339,7 +339,7 @@ GROUP BY a.""code"", a.""seqid"", a.""name""", sql); | ||||
|         public void SelectLambdaParameter() | ||||
|         { | ||||
|             using (var fsql = new FreeSql.FreeSqlBuilder() | ||||
|                 .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;min pool size=1;Max Pool Size=51") | ||||
|                 .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;min pool size=1;Max Pool Size=51;TrustServerCertificate=true") | ||||
|                 .UseAutoSyncStructure(true) | ||||
|                 .UseGenerateCommandParameterWithLambda(true) | ||||
|                 .UseMonitorCommand( | ||||
|   | ||||
| @@ -16,6 +16,53 @@ namespace FreeSql.Tests | ||||
| { | ||||
|     public class UnitTest5 | ||||
|     { | ||||
|         [Fact] | ||||
|         public void TestLambdaParameterWhereIn() | ||||
|         { | ||||
|             using (var fsql = new FreeSql.FreeSqlBuilder() | ||||
|                 .UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\TestLambdaParameterWhereIn.db") | ||||
|                 .UseAutoSyncStructure(true) | ||||
|                 .UseGenerateCommandParameterWithLambda(true) | ||||
|                 .UseLazyLoading(true) | ||||
|                 .UseMonitorCommand( | ||||
|                     cmd => Trace.WriteLine("\r\n线程" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText) //监听SQL命令对象,在执行前 | ||||
|                     //, (cmd, traceLog) => Console.WriteLine(traceLog) | ||||
|                     ) | ||||
|                 .Build()) | ||||
|             { | ||||
|  | ||||
|                 string dwId = "123456"; | ||||
|                 string yhId = "654321"; | ||||
|  | ||||
|                 var sql = fsql.Select<wygl_wygs_gzry_wyglqyModelTest1>() | ||||
|                       .Where(a => a.dw_id == dwId && | ||||
|                          fsql.Select<wygl_wygs_gzry_wyglqyModel>() | ||||
|                                .Where(b => b.yh_id == yhId).ToList(b => b.wyqy_id).Contains(a.wyqy_id) | ||||
|                       ); | ||||
|  | ||||
|                 var sql1 = sql.ToSql(); | ||||
|                 Assert.Equal(@"SELECT a.""dw_id"", a.""wyqy_id""  | ||||
| FROM ""wygl_wygs_gzry_wyglqyModelTest1"" a  | ||||
| WHERE (a.""dw_id"" = @exp_0 AND ((a.""wyqy_id"") in (SELECT b.""wyqy_id""  | ||||
|     FROM ""wygl_wygs_gzry_wyglqyModel"" b  | ||||
|     WHERE (b.""yh_id"" = @exp_1))))", sql1); | ||||
|                 Assert.Equal(2, (sql as Select0Provider)._params.Count); | ||||
|                 Assert.Equal("123456", (sql as Select0Provider)._params[0].Value); | ||||
|                 Assert.Equal("654321", (sql as Select0Provider)._params[1].Value); | ||||
|             } | ||||
|         } | ||||
|         class wygl_wygs_gzry_wyglqyModelTest1 | ||||
|         { | ||||
|             public string dw_id { get; set; } | ||||
|             public string wyqy_id { get; set; } | ||||
|         } | ||||
|         class wygl_wygs_gzry_wyglqyModel | ||||
|         { | ||||
|             public string yh_id { get; set; } | ||||
|             public string wyqy_id { get; set; } | ||||
|         } | ||||
|  | ||||
|  | ||||
|  | ||||
|         [Fact] | ||||
|         public void TestJsonb01() | ||||
|   | ||||
| @@ -54,7 +54,7 @@ public class g | ||||
|     public static IFreeSql pgsql => pgsqlLazy.Value; | ||||
|  | ||||
|     static Lazy<IFreeSql> sqlserverLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder() | ||||
|         .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=issues684;Pooling=true;Max Pool Size=3") | ||||
|         .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=issues684;Pooling=true;Max Pool Size=3;TrustServerCertificate=true") | ||||
|         .UseAutoSyncStructure(true) | ||||
|         .UseMonitorCommand( | ||||
|             cmd => Trace.WriteLine("\r\n线程" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText) //监听SQL命令对象,在执行前 | ||||
|   | ||||
| @@ -120,10 +120,10 @@ namespace FreeSql.ClickHouse | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -122,10 +122,10 @@ namespace FreeSql.Custom | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -122,10 +122,10 @@ namespace FreeSql.Dameng | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -109,10 +109,10 @@ namespace FreeSql.Firebird | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -109,10 +109,10 @@ namespace FreeSql.GBase | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -146,10 +146,10 @@ namespace FreeSql.KingbaseES | ||||
|                                 tsc.SetMapColumnTmp(null); | ||||
|                                 var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                                 var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                                 var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                                 //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                                 left = objExp == null ? null : getExp(objExp); | ||||
|                                 tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                                 tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                                 //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                                 //判断 in 或 array @> array | ||||
|                                 if (left.StartsWith("array[") || left.EndsWith("]")) | ||||
|                                     return $"({args1}) in ({left.Substring(6, left.Length - 7)})"; | ||||
|   | ||||
| @@ -92,10 +92,10 @@ namespace FreeSql.MsAccess | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -120,10 +120,10 @@ namespace FreeSql.MySql | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -122,10 +122,10 @@ namespace FreeSql.Odbc.Dameng | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -122,10 +122,10 @@ namespace FreeSql.Odbc.Default | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -146,10 +146,10 @@ namespace FreeSql.Odbc.KingbaseES | ||||
|                                 tsc.SetMapColumnTmp(null); | ||||
|                                 var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                                 var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                                 var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                                 //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                                 left = objExp == null ? null : getExp(objExp); | ||||
|                                 tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                                 tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                                 //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                                 //判断 in 或 array @> array | ||||
|                                 if (left.StartsWith("array[") || left.EndsWith("]")) | ||||
|                                     return $"({args1}) in ({left.Substring(6, left.Length - 7)})"; | ||||
|   | ||||
| @@ -118,10 +118,10 @@ namespace FreeSql.Odbc.MySql | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -122,10 +122,10 @@ namespace FreeSql.Odbc.Oracle | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -146,10 +146,10 @@ namespace FreeSql.Odbc.PostgreSQL | ||||
|                                 tsc.SetMapColumnTmp(null); | ||||
|                                 var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                                 var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                                 var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                                 //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                                 left = objExp == null ? null : getExp(objExp); | ||||
|                                 tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                                 tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                                 //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                                 //判断 in 或 array @> array | ||||
|                                 if (left.StartsWith("array[") || left.EndsWith("]")) | ||||
|                                     return $"({args1}) in ({left.Substring(6, left.Length - 7)})"; | ||||
|   | ||||
| @@ -128,10 +128,10 @@ namespace FreeSql.Odbc.SqlServer | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -122,10 +122,10 @@ namespace FreeSql.Oracle | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -177,10 +177,10 @@ namespace FreeSql.PostgreSQL | ||||
|                                 tsc.SetMapColumnTmp(null); | ||||
|                                 var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                                 var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                                 var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                                 //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                                 left = objExp == null ? null : getExp(objExp); | ||||
|                                 tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                                 tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                                 //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                                 //判断 in 或 array @> array | ||||
|                                 if (left.StartsWith("array[") || left.EndsWith("]")) | ||||
|                                     return $"({args1}) in ({left.Substring(6, left.Length - 7)})"; | ||||
|   | ||||
| @@ -128,10 +128,10 @@ namespace FreeSql.ShenTong | ||||
|                                 tsc.SetMapColumnTmp(null); | ||||
|                                 var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                                 var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                                 var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                                 //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                                 left = objExp == null ? null : getExp(objExp); | ||||
|                                 tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                                 tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                                 //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                                 //判断 in 或 array @> array | ||||
|                                 if (left.StartsWith("array[") || left.EndsWith("]")) | ||||
|                                     return $"({args1}) in ({left.Substring(6, left.Length - 7)})"; | ||||
|   | ||||
| @@ -127,10 +127,10 @@ namespace FreeSql.SqlServer | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
| @@ -118,10 +118,10 @@ namespace FreeSql.Sqlite | ||||
|                         tsc.SetMapColumnTmp(null); | ||||
|                         var args1 = getExp(callExp.Arguments[argIndex]); | ||||
|                         var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp); | ||||
|                         var oldDbParams = tsc.SetDbParamsReturnOld(null); | ||||
|                         //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug | ||||
|                         var left = objExp == null ? null : getExp(objExp); | ||||
|                         tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType); | ||||
|                         tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         //tsc.SetDbParamsReturnOld(oldDbParams); | ||||
|                         switch (callExp.Method.Name) | ||||
|                         { | ||||
|                             case "Contains": | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 2881099
					2881099