mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	- 修复 UseGenerateCommandParameterWithLambda(true) 问题;#1173 #900
This commit is contained in:
		@@ -418,6 +418,42 @@ namespace base_entity
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Dictionary<string, object> dic = new Dictionary<string, object>();
 | 
				
			||||||
 | 
					            dic.Add("id", 1);
 | 
				
			||||||
 | 
					            dic.Add("name", "xxxx");
 | 
				
			||||||
 | 
					            var diclist = new List<Dictionary<string, object>>();
 | 
				
			||||||
 | 
					            diclist.Add(dic);
 | 
				
			||||||
 | 
					            diclist.Add(new Dictionary<string, object>
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ["id"] = 2,
 | 
				
			||||||
 | 
					                ["name"] = "123,1234,123444"
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var sqss = fsql.InsertDict(dic).AsTable("table1").ToSql();
 | 
				
			||||||
 | 
					            var sqss2 = fsql.InsertDict(diclist).AsTable("table1").ToSql();
 | 
				
			||||||
 | 
					            sqss = fsql.InsertDict(dic).AsTable("table1").NoneParameter(false).ToSql();
 | 
				
			||||||
 | 
					            sqss2 = fsql.InsertDict(diclist).AsTable("table1").NoneParameter(false).ToSql();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var sqlupd1 = fsql.UpdateDict(dic).AsTable("table1").WherePrimary("id").ToSql();
 | 
				
			||||||
 | 
					            var sqlupd2 = fsql.UpdateDict(diclist).AsTable("table1").WherePrimary("id").ToSql();
 | 
				
			||||||
 | 
					            var sqlupd11 = fsql.UpdateDict(dic).AsTable("table1").WherePrimary("id").NoneParameter(false).ToSql();
 | 
				
			||||||
 | 
					            var sqlupd22 = fsql.UpdateDict(diclist).AsTable("table1").WherePrimary("id").NoneParameter(false).ToSql();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var sqldel1 = fsql.DeleteDict(dic).AsTable("table1").ToSql();
 | 
				
			||||||
 | 
					            var sqldel2 = fsql.DeleteDict(diclist).AsTable("table1").ToSql();
 | 
				
			||||||
 | 
					            diclist[1]["title"] = "newtitle";
 | 
				
			||||||
 | 
					            var sqldel3 = fsql.DeleteDict(diclist).AsTable("table1").ToSql();
 | 
				
			||||||
 | 
					            diclist.Clear();
 | 
				
			||||||
 | 
					            diclist.Add(new Dictionary<string, object>
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ["id"] = 1
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            diclist.Add(new Dictionary<string, object>
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ["id"] = 2
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            var sqldel4 = fsql.DeleteDict(diclist).AsTable("table1").ToSql();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var sql1 = fsql.Select<User1, UserGroup>()
 | 
					            var sql1 = fsql.Select<User1, UserGroup>()
 | 
				
			||||||
                .RawJoin("FULL JOIN UserGroup b ON b.id = a.GroupId")
 | 
					                .RawJoin("FULL JOIN UserGroup b ON b.id = a.GroupId")
 | 
				
			||||||
                .Where((a, b) => a.IsDeleted == false)
 | 
					                .Where((a, b) => a.IsDeleted == false)
 | 
				
			||||||
@@ -748,41 +784,7 @@ namespace base_entity
 | 
				
			|||||||
                
 | 
					                
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Dictionary<string, object> dic = new Dictionary<string, object>();
 | 
					 | 
				
			||||||
            dic.Add("id", 1);
 | 
					 | 
				
			||||||
            dic.Add("name", "xxxx");
 | 
					 | 
				
			||||||
            var diclist = new List<Dictionary<string, object>>();
 | 
					 | 
				
			||||||
            diclist.Add(dic);
 | 
					 | 
				
			||||||
            diclist.Add(new Dictionary<string, object>
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                ["id"] = 2,
 | 
					 | 
				
			||||||
                ["name"] = "yyyy"
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            var sqss = fsql.InsertDict(dic).AsTable("table1").ToSql();
 | 
					 | 
				
			||||||
            var sqss2 = fsql.InsertDict(diclist).AsTable("table1").ToSql();
 | 
					 | 
				
			||||||
            sqss = fsql.InsertDict(dic).AsTable("table1").NoneParameter(false).ToSql();
 | 
					 | 
				
			||||||
            sqss2 = fsql.InsertDict(diclist).AsTable("table1").NoneParameter(false).ToSql();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            var sqlupd1 = fsql.UpdateDict(dic).AsTable("table1").WherePrimary("id").ToSql();
 | 
					 | 
				
			||||||
            var sqlupd2 = fsql.UpdateDict(diclist).AsTable("table1").WherePrimary("id").ToSql();
 | 
					 | 
				
			||||||
            var sqlupd11 = fsql.UpdateDict(dic).AsTable("table1").WherePrimary("id").NoneParameter(false).ToSql();
 | 
					 | 
				
			||||||
            var sqlupd22 = fsql.UpdateDict(diclist).AsTable("table1").WherePrimary("id").NoneParameter(false).ToSql();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            var sqldel1 = fsql.DeleteDict(dic).AsTable("table1").ToSql();
 | 
					 | 
				
			||||||
            var sqldel2 = fsql.DeleteDict(diclist).AsTable("table1").ToSql();
 | 
					 | 
				
			||||||
            diclist[1]["title"] = "newtitle";
 | 
					 | 
				
			||||||
            var sqldel3 = fsql.DeleteDict(diclist).AsTable("table1").ToSql();
 | 
					 | 
				
			||||||
            diclist.Clear();
 | 
					 | 
				
			||||||
            diclist.Add(new Dictionary<string, object>
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                ["id"] = 1
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
            diclist.Add(new Dictionary<string, object>
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                ["id"] = 2
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
            var sqldel4 = fsql.DeleteDict(diclist).AsTable("table1").ToSql();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (var a = 0; a < 10000; a++)
 | 
					            for (var a = 0; a < 10000; a++)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
using FreeSql.DataAnnotations;
 | 
					using FreeSql.DataAnnotations;
 | 
				
			||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Collections.Generic;
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Diagnostics;
 | 
				
			||||||
using System.Linq;
 | 
					using System.Linq;
 | 
				
			||||||
using Xunit;
 | 
					using Xunit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -180,6 +181,60 @@ WHERE (('name01' = a.""Name"" AND 1 = a.""Click"" OR a.""Click"" > 10) OR ('name
 | 
				
			|||||||
            var sql1133333 = select.Where(a => !inarray2n.Contains(a.Int)).ToList();
 | 
					            var sql1133333 = select.Where(a => !inarray2n.Contains(a.Int)).ToList();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ArrayUseGenerateCommandParameterWithLambda()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            using (var fsql = new FreeSqlBuilder()
 | 
				
			||||||
 | 
					                .UseConnectionString(DataType.Sqlite, "data source=:memory:")
 | 
				
			||||||
 | 
					                .UseGenerateCommandParameterWithLambda(true)
 | 
				
			||||||
 | 
					                .UseAutoSyncStructure(true)
 | 
				
			||||||
 | 
					                .UseMonitorCommand(null, (cmd, log) => Trace.WriteLine(log))
 | 
				
			||||||
 | 
					                .Build())
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                var arr = new[] { 1L, 2L, 3L }.Select(x => x);
 | 
				
			||||||
 | 
					                var ids = arr.Select(x => x);
 | 
				
			||||||
 | 
					                var sql001 = fsql.Select<TableAllType>().Where(x => ids.Contains(x.Id)).ToSql();
 | 
				
			||||||
 | 
					                Assert.Equal(@"SELECT a.""Id"", a.""id2"", a.""Bool"", a.""SByte"", a.""Short"", a.""Int"", a.""Long"", a.""Byte"", a.""UShort"", a.""UInt"", a.""ULong"", a.""Double"", a.""Float"", a.""Decimal"", a.""TimeSpan"", a.""DateTime"", a.""DateTimeOffSet"", a.""Bytes"", a.""String"", a.""Guid"", a.""BoolNullable"", a.""SByteNullable"", a.""ShortNullable"", a.""IntNullable"", a.""testFielLongNullable"", a.""ByteNullable"", a.""UShortNullable"", a.""UIntNullable"", a.""ULongNullable"", a.""DoubleNullable"", a.""FloatNullable"", a.""DecimalNullable"", a.""TimeSpanNullable"", a.""DateTimeNullable"", a.""DateTimeOffSetNullable"", a.""GuidNullable"", a.""Enum1"", a.""Enum1Nullable"", a.""Enum2"", a.""Enum2Nullable"" 
 | 
				
			||||||
 | 
					FROM ""tb_alltype"" a 
 | 
				
			||||||
 | 
					WHERE (((a.""Id"") in (1,2,3)))", sql001);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                IEnumerable<int> testlinqlist = new List<int>(new[] { 1, 2, 3 });
 | 
				
			||||||
 | 
					                var testlinq = fsql.Select<TableAllType>().Where(a => testlinqlist.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					                var testlinq2list = new string[] { };
 | 
				
			||||||
 | 
					                var testlinq2 = g.sqlite.Delete<TableAllType>().Where(a => testlinq2list.Contains(a.String)).ToSql();
 | 
				
			||||||
 | 
					                Assert.Equal("DELETE FROM \"tb_alltype\" WHERE (((\"String\") in (NULL)))", testlinq2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                //in not in
 | 
				
			||||||
 | 
					                var sql111 = fsql.Select<TableAllType>().Where(a => new[] { 1, 2, 3 }.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					                var sql112 = fsql.Select<TableAllType>().Where(a => new[] { 1, 2, 3 }.Contains(a.Int) == false).ToList();
 | 
				
			||||||
 | 
					                var sql113 = fsql.Select<TableAllType>().Where(a => !new[] { 1, 2, 3 }.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var inarray = new[] { 1, 2, 3 };
 | 
				
			||||||
 | 
					                var sql1111 = fsql.Select<TableAllType>().Where(a => inarray.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					                var sql1122 = fsql.Select<TableAllType>().Where(a => inarray.Contains(a.Int) == false).ToList();
 | 
				
			||||||
 | 
					                var sql1133 = fsql.Select<TableAllType>().Where(a => !inarray.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                //in not in
 | 
				
			||||||
 | 
					                var sql11111 = fsql.Select<TableAllType>().Where(a => new List<int>() { 1, 2, 3 }.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					                var sql11222 = fsql.Select<TableAllType>().Where(a => new List<int>() { 1, 2, 3 }.Contains(a.Int) == false).ToList();
 | 
				
			||||||
 | 
					                var sql11333 = fsql.Select<TableAllType>().Where(a => !new List<int>() { 1, 2, 3 }.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var sql11111a = fsql.Select<TableAllType>().Where(a => new List<int>(new[] { 1, 2, 3 }).Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					                var sql11222b = fsql.Select<TableAllType>().Where(a => new List<int>(new[] { 1, 2, 3 }).Contains(a.Int) == false).ToList();
 | 
				
			||||||
 | 
					                var sql11333c = fsql.Select<TableAllType>().Where(a => !new List<int>(new[] { 1, 2, 3 }).Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var inarray2 = new List<int>() { 1, 2, 3 };
 | 
				
			||||||
 | 
					                var sql111111 = fsql.Select<TableAllType>().Where(a => inarray.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					                var sql112222 = fsql.Select<TableAllType>().Where(a => inarray.Contains(a.Int) == false).ToList();
 | 
				
			||||||
 | 
					                var sql113333 = fsql.Select<TableAllType>().Where(a => !inarray.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var inarray2n = Enumerable.Range(1, 3333).ToArray();
 | 
				
			||||||
 | 
					                var sql1111111 = fsql.Select<TableAllType>().Where(a => inarray2n.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					                var sql1122222 = fsql.Select<TableAllType>().Where(a => inarray2n.Contains(a.Int) == false).ToList();
 | 
				
			||||||
 | 
					                var sql1133333 = fsql.Select<TableAllType>().Where(a => !inarray2n.Contains(a.Int)).ToList();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [Table(Name = "tb_alltype")]
 | 
					        [Table(Name = "tb_alltype")]
 | 
				
			||||||
        class TableAllType
 | 
					        class TableAllType
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -120,12 +120,12 @@ namespace FreeSql.ClickHouse
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,12 +122,12 @@ namespace FreeSql.Custom
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,12 +122,12 @@ namespace FreeSql.Dameng
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -109,12 +109,12 @@ namespace FreeSql.Firebird
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -109,12 +109,12 @@ namespace FreeSql.GBase
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -146,12 +146,12 @@ namespace FreeSql.KingbaseES
 | 
				
			|||||||
                                tsc.SetMapColumnTmp(null);
 | 
					                                tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                                var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                                var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                                var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                                var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                                //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                                var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                                tsc.isNotSetMapColumnTmp = true;
 | 
					                                tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                                left = objExp == null ? null : getExp(objExp);
 | 
					                                left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                                tsc.isNotSetMapColumnTmp = false;
 | 
					                                tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                                tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                                tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                                //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                                if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                                //判断 in 或 array @> array
 | 
					                                //判断 in 或 array @> array
 | 
				
			||||||
                                if (left.StartsWith("array[") || left.EndsWith("]"))
 | 
					                                if (left.StartsWith("array[") || left.EndsWith("]"))
 | 
				
			||||||
                                    return $"({args1}) in ({left.Substring(6, left.Length - 7)})";
 | 
					                                    return $"({args1}) in ({left.Substring(6, left.Length - 7)})";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -92,12 +92,12 @@ namespace FreeSql.MsAccess
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -120,12 +120,12 @@ namespace FreeSql.MySql
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,12 +122,12 @@ namespace FreeSql.Odbc.Dameng
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,12 +122,12 @@ namespace FreeSql.Odbc.Default
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -146,12 +146,12 @@ namespace FreeSql.Odbc.KingbaseES
 | 
				
			|||||||
                                tsc.SetMapColumnTmp(null);
 | 
					                                tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                                var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                                var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                                var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                                var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                                //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                                var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                                tsc.isNotSetMapColumnTmp = true;
 | 
					                                tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                                left = objExp == null ? null : getExp(objExp);
 | 
					                                left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                                tsc.isNotSetMapColumnTmp = false;
 | 
					                                tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                                tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                                tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                                //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                                if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                                //判断 in 或 array @> array
 | 
					                                //判断 in 或 array @> array
 | 
				
			||||||
                                if (left.StartsWith("array[") || left.EndsWith("]"))
 | 
					                                if (left.StartsWith("array[") || left.EndsWith("]"))
 | 
				
			||||||
                                    return $"({args1}) in ({left.Substring(6, left.Length - 7)})";
 | 
					                                    return $"({args1}) in ({left.Substring(6, left.Length - 7)})";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -118,12 +118,12 @@ namespace FreeSql.Odbc.MySql
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,12 +122,12 @@ namespace FreeSql.Odbc.Oracle
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -146,12 +146,12 @@ namespace FreeSql.Odbc.PostgreSQL
 | 
				
			|||||||
                                tsc.SetMapColumnTmp(null);
 | 
					                                tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                                var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                                var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                                var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                                var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                                //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                                var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                                tsc.isNotSetMapColumnTmp = true;
 | 
					                                tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                                left = objExp == null ? null : getExp(objExp);
 | 
					                                left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                                tsc.isNotSetMapColumnTmp = false;
 | 
					                                tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                                tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                                tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                                //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                                if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                                //判断 in 或 array @> array
 | 
					                                //判断 in 或 array @> array
 | 
				
			||||||
                                if (left.StartsWith("array[") || left.EndsWith("]"))
 | 
					                                if (left.StartsWith("array[") || left.EndsWith("]"))
 | 
				
			||||||
                                    return $"({args1}) in ({left.Substring(6, left.Length - 7)})";
 | 
					                                    return $"({args1}) in ({left.Substring(6, left.Length - 7)})";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -128,12 +128,12 @@ namespace FreeSql.Odbc.SqlServer
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,12 +122,12 @@ namespace FreeSql.Oracle
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -177,12 +177,12 @@ namespace FreeSql.PostgreSQL
 | 
				
			|||||||
                                tsc.SetMapColumnTmp(null);
 | 
					                                tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                                var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                                var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                                var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                                var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                                //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                                var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                                tsc.isNotSetMapColumnTmp = true;
 | 
					                                tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                                left = objExp == null ? null : getExp(objExp);
 | 
					                                left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                                tsc.isNotSetMapColumnTmp = false;
 | 
					                                tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                                tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                                tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                                //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                                if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                                //判断 in 或 array @> array
 | 
					                                //判断 in 或 array @> array
 | 
				
			||||||
                                if (left.StartsWith("array[") || left.EndsWith("]"))
 | 
					                                if (left.StartsWith("array[") || left.EndsWith("]"))
 | 
				
			||||||
                                    return $"({args1}) in ({left.Substring(6, left.Length - 7)})";
 | 
					                                    return $"({args1}) in ({left.Substring(6, left.Length - 7)})";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -128,12 +128,12 @@ namespace FreeSql.ShenTong
 | 
				
			|||||||
                                tsc.SetMapColumnTmp(null);
 | 
					                                tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                                var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                                var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                                var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                                var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                                //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                                var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                                tsc.isNotSetMapColumnTmp = true;
 | 
					                                tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                                left = objExp == null ? null : getExp(objExp);
 | 
					                                left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                                tsc.isNotSetMapColumnTmp = false;
 | 
					                                tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                                tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                                tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                                //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                                if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                                //判断 in 或 array @> array
 | 
					                                //判断 in 或 array @> array
 | 
				
			||||||
                                if (left.StartsWith("array[") || left.EndsWith("]"))
 | 
					                                if (left.StartsWith("array[") || left.EndsWith("]"))
 | 
				
			||||||
                                    return $"({args1}) in ({left.Substring(6, left.Length - 7)})";
 | 
					                                    return $"({args1}) in ({left.Substring(6, left.Length - 7)})";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -127,12 +127,12 @@ namespace FreeSql.SqlServer
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -118,12 +118,12 @@ namespace FreeSql.Sqlite
 | 
				
			|||||||
                        tsc.SetMapColumnTmp(null);
 | 
					                        tsc.SetMapColumnTmp(null);
 | 
				
			||||||
                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
					                        var args1 = getExp(callExp.Arguments[argIndex]);
 | 
				
			||||||
                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
					                        var oldMapType = tsc.SetMapTypeReturnOld(tsc.mapTypeTmp);
 | 
				
			||||||
                        //var oldDbParams = tsc.SetDbParamsReturnOld(null); #900 UseGenerateCommandParameterWithLambda(true) 子查询 bug
 | 
					                        var oldDbParams = objExp.NodeType == ExpressionType.MemberAccess ? tsc.SetDbParamsReturnOld(null) : null; //#900 UseGenerateCommandParameterWithLambda(true) 子查询 bug、以及 #1173 参数化 bug
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = true;
 | 
					                        tsc.isNotSetMapColumnTmp = true;
 | 
				
			||||||
                        var left = objExp == null ? null : getExp(objExp);
 | 
					                        var left = objExp == null ? null : getExp(objExp);
 | 
				
			||||||
                        tsc.isNotSetMapColumnTmp = false;
 | 
					                        tsc.isNotSetMapColumnTmp = false;
 | 
				
			||||||
                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
					                        tsc.SetMapColumnTmp(null).SetMapTypeReturnOld(oldMapType);
 | 
				
			||||||
                        //tsc.SetDbParamsReturnOld(oldDbParams);
 | 
					                        if (oldDbParams != null) tsc.SetDbParamsReturnOld(oldDbParams);
 | 
				
			||||||
                        switch (callExp.Method.Name)
 | 
					                        switch (callExp.Method.Name)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            case "Contains":
 | 
					                            case "Contains":
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user