mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	- 修复 UseGenerateCommandParameterWithLambda 子查询 IN bug;#900
This commit is contained in:
		@@ -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":
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user