mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	- 修复 IgnoreColumns 相关方法解析表达式 a => new [] { "Id" .. } 无效的 bug;
This commit is contained in:
		@@ -341,19 +341,19 @@ namespace FreeSql.Internal
 | 
			
		||||
                case ExpressionType.Lambda: return ExpressionSelectColumns_MemberAccess_New_NewArrayInit(_tables, (exp as LambdaExpression)?.Body, isQuoteName, getSelectGroupingMapString);
 | 
			
		||||
                case ExpressionType.Convert: return ExpressionSelectColumns_MemberAccess_New_NewArrayInit(_tables, (exp as UnaryExpression)?.Operand, isQuoteName, getSelectGroupingMapString);
 | 
			
		||||
                case ExpressionType.Constant: return new[] { ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, isQuoteName, getSelectGroupingMapString) };
 | 
			
		||||
                case ExpressionType.MemberAccess: return new[] { ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, isQuoteName, getSelectGroupingMapString) };
 | 
			
		||||
                case ExpressionType.MemberAccess: return ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, exp, isQuoteName, getSelectGroupingMapString).Trim('(', ')', '\'').Split(new[] { "','" }, StringSplitOptions.RemoveEmptyEntries);
 | 
			
		||||
                case ExpressionType.New:
 | 
			
		||||
                    var newExp = exp as NewExpression;
 | 
			
		||||
                    if (newExp == null) break;
 | 
			
		||||
                    var newExpMembers = new string[newExp.Members.Count];
 | 
			
		||||
                    for (var a = 0; a < newExpMembers.Length; a++) newExpMembers[a] = ExpressionSelectColumn_MemberAccess(_tables, null, SelectTableInfoType.From, newExp.Arguments[a], isQuoteName, getSelectGroupingMapString);
 | 
			
		||||
                    return newExpMembers;
 | 
			
		||||
                    return newExpMembers.Distinct().Select(a => a.Trim('\'')).ToArray();
 | 
			
		||||
                case ExpressionType.NewArrayInit:
 | 
			
		||||
                    var newArr = exp as NewArrayExpression;
 | 
			
		||||
                    if (newArr == null) break;
 | 
			
		||||
                    var newArrMembers = new List<string>();
 | 
			
		||||
                    foreach (var newArrExp in newArr.Expressions) newArrMembers.AddRange(ExpressionSelectColumns_MemberAccess_New_NewArrayInit(_tables, newArrExp, isQuoteName, getSelectGroupingMapString));
 | 
			
		||||
                    return newArrMembers.ToArray();
 | 
			
		||||
                    return newArrMembers.Distinct().Select(a => a.Trim('\'')).ToArray();
 | 
			
		||||
            }
 | 
			
		||||
            return new string[0];
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user