mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	- 修复 Oracle IncludeMany IN 元素超过 500 数目的问题;#843
This commit is contained in:
		@@ -145,6 +145,7 @@ namespace FreeSql.Tests.MySqlMapType
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            //insert
 | 
					            //insert
 | 
				
			||||||
            var orm = g.mysql;
 | 
					            var orm = g.mysql;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var item = new EnumTestMap { };
 | 
					            var item = new EnumTestMap { };
 | 
				
			||||||
            Assert.Equal(1, orm.Insert<EnumTestMap>().AppendData(item).ExecuteAffrows());
 | 
					            Assert.Equal(1, orm.Insert<EnumTestMap>().AppendData(item).ExecuteAffrows());
 | 
				
			||||||
            var find = orm.Select<EnumTestMap>().Where(a => a.id == item.id && a.enum_to_int == ToStringMapEnum.<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>).First();
 | 
					            var find = orm.Select<EnumTestMap>().Where(a => a.id == item.id && a.enum_to_int == ToStringMapEnum.<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>).First();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -316,6 +316,13 @@ namespace FreeSql.Tests
 | 
				
			|||||||
                .ToList();
 | 
					                .ToList();
 | 
				
			||||||
            g.sqlite.Update<gf_t1>().NoneParameter().Set(a => a.rowstate + 1).Where(a => a.rowstate >= 0).ExecuteAffrows();
 | 
					            g.sqlite.Update<gf_t1>().NoneParameter().Set(a => a.rowstate + 1).Where(a => a.rowstate >= 0).ExecuteAffrows();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var dddd2sql1 = g.sqlite.Select<gf_t1>()
 | 
				
			||||||
 | 
					                .DisableGlobalFilter()
 | 
				
			||||||
 | 
					                .ToUpdate()
 | 
				
			||||||
 | 
					                //.DisableGlobalFilter()
 | 
				
			||||||
 | 
					                .Set(a => a.rowstate, 10)
 | 
				
			||||||
 | 
					                .ToSql();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var dtot2 = g.sqlite.Select<gf_t1>().ToList(a => new gfDto
 | 
					            var dtot2 = g.sqlite.Select<gf_t1>().ToList(a => new gfDto
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                dto2 = new dfDto2
 | 
					                dto2 = new dfDto2
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -56,6 +56,17 @@ namespace FreeSql
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        internal static ThreadLocal<ExpressionCallContext> expContext = new ThreadLocal<ExpressionCallContext>();
 | 
					        internal static ThreadLocal<ExpressionCallContext> expContext = new ThreadLocal<ExpressionCallContext>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //public static bool BitAnd<TEnum>(TEnum enum1, [RawValue] TEnum enum2)
 | 
				
			||||||
 | 
					        //{
 | 
				
			||||||
 | 
					        //    expContext.Value.Result = $"({expContext.Value.ParsedContent["enum1"]} & {Convert.ToInt32(enum2)}) = {Convert.ToInt32(enum2)}";
 | 
				
			||||||
 | 
					        //    return false;
 | 
				
			||||||
 | 
					        //}
 | 
				
			||||||
 | 
					        //public static bool BitOr<TEnum>(TEnum enum1, [RawValue] TEnum enum2)
 | 
				
			||||||
 | 
					        //{
 | 
				
			||||||
 | 
					        //    expContext.Value.Result = $"({expContext.Value.ParsedContent["enum1"]} | {Convert.ToInt32(enum2)}) = {Convert.ToInt32(enum2)}";
 | 
				
			||||||
 | 
					        //    return false;
 | 
				
			||||||
 | 
					        //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #region SqlServer/PostgreSQL over
 | 
					        #region SqlServer/PostgreSQL over
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// rank() over(order by ...)
 | 
					        /// rank() over(order by ...)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -141,6 +141,7 @@ namespace FreeSql.Custom
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -141,6 +141,7 @@ namespace FreeSql.Dameng
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -128,6 +128,7 @@ namespace FreeSql.Firebird
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -111,6 +111,7 @@ namespace FreeSql.MsAccess
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -139,6 +139,7 @@ namespace FreeSql.MySql
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -141,6 +141,7 @@ namespace FreeSql.Odbc.Dameng
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -141,6 +141,7 @@ namespace FreeSql.Odbc.Default
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -137,6 +137,7 @@ namespace FreeSql.Odbc.MySql
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -141,6 +141,7 @@ namespace FreeSql.Odbc.Oracle
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -147,6 +147,7 @@ namespace FreeSql.Odbc.SqlServer
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -141,6 +141,7 @@ namespace FreeSql.Oracle
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -146,6 +146,7 @@ namespace FreeSql.SqlServer
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -137,6 +137,7 @@ namespace FreeSql.Sqlite
 | 
				
			|||||||
                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
					                    for (var a = 0; a < arrExp.Expressions.Count; a++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (a > 0) arrSb.Append(",");
 | 
					                        if (a > 0) arrSb.Append(",");
 | 
				
			||||||
 | 
					                        if (a % 500 == 499) arrSb.Append("   \r\n    \r\n"); //500元素分割, 3空格\r\n4空格
 | 
				
			||||||
                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
					                        arrSb.Append(getExp(arrExp.Expressions[a]));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
					                    if (arrSb.Length == 1) arrSb.Append("NULL");
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user