mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	- 修复 GroupBy 类型转换错误;#186
- 修复 .ToList(a => new DTO(a.id)) 报 未将对象引用设置到对象的实例 问题; #187 - 修复 update语句,二元运算解析出错; #184
This commit is contained in:
		@@ -127,14 +127,14 @@ namespace FreeSql
 | 
			
		||||
        /// <typeparam name="T3"></typeparam>
 | 
			
		||||
        /// <param name="column"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        T3 Sum<T3>(T3 column);
 | 
			
		||||
        decimal Sum<T3>(T3 column);
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 平均值
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <typeparam name="T3"></typeparam>
 | 
			
		||||
        /// <param name="column"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        T3 Avg<T3>(T3 column);
 | 
			
		||||
        decimal Avg<T3>(T3 column);
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 最大值
 | 
			
		||||
        /// </summary>
 | 
			
		||||
 
 | 
			
		||||
@@ -124,7 +124,7 @@ namespace FreeSql.Internal
 | 
			
		||||
                            var child = new ReadAnonymousTypeInfo
 | 
			
		||||
                            {
 | 
			
		||||
                                Property = null,
 | 
			
		||||
                                CsName = (initExp.NewExpression.Arguments[a] as MemberExpression)?.Member.Name,
 | 
			
		||||
                                CsName = initExp.NewExpression.Members != null ? initExp.NewExpression.Members[a].Name : (initExp.NewExpression.Arguments[a] as MemberExpression)?.Member.Name,
 | 
			
		||||
                                CsType = initExp.NewExpression.Arguments[a].Type,
 | 
			
		||||
                                MapType = initExp.NewExpression.Arguments[a].Type
 | 
			
		||||
                            };
 | 
			
		||||
@@ -206,7 +206,7 @@ namespace FreeSql.Internal
 | 
			
		||||
                            var child = new ReadAnonymousTypeInfo
 | 
			
		||||
                            {
 | 
			
		||||
                                Property = null,
 | 
			
		||||
                                CsName = (newExp.Arguments[a] as MemberExpression)?.Member.Name,
 | 
			
		||||
                                CsName = newExp.Members != null ? newExp.Members[a].Name : (newExp.Arguments[a] as MemberExpression)?.Member.Name,
 | 
			
		||||
                                CsType = newExp.Arguments[a].Type,
 | 
			
		||||
                                MapType = newExp.Arguments[a].Type
 | 
			
		||||
                            };
 | 
			
		||||
 
 | 
			
		||||
@@ -114,6 +114,7 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            var index = 0;
 | 
			
		||||
 | 
			
		||||
            _comonExp.ReadAnonymousField(null, field, map, ref index, select, getSelectGroupingMapString, null, true);
 | 
			
		||||
            if (map.Childs.Any() == false && map.MapType == null) map.MapType = typeof(TReturn);
 | 
			
		||||
            var method = _select.GetType().GetMethod("ToListMapReader", BindingFlags.Instance | BindingFlags.NonPublic);
 | 
			
		||||
            method = method.MakeGenericMethod(typeof(TReturn));
 | 
			
		||||
            return method.Invoke(_select, new object[] { (map, field.Length > 0 ? field.Remove(0, 2).ToString() : null) }) as List<TReturn>;
 | 
			
		||||
@@ -181,6 +182,7 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            var index = 0;
 | 
			
		||||
 | 
			
		||||
            _comonExp.ReadAnonymousField(null, field, map, ref index, select, getSelectGroupingMapString, null, true);
 | 
			
		||||
            if (map.Childs.Any() == false && map.MapType == null) map.MapType = typeof(TReturn);
 | 
			
		||||
            var method = _select.GetType().GetMethod("ToListMapReaderAsync", BindingFlags.Instance | BindingFlags.NonPublic);
 | 
			
		||||
            method = method.MakeGenericMethod(typeof(TReturn));
 | 
			
		||||
            return method.Invoke(_select, new object[] { (map, field.Length > 0 ? field.Remove(0, 2).ToString() : null) }) as Task<List<TReturn>>;
 | 
			
		||||
 
 | 
			
		||||
@@ -363,7 +363,9 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            switch (nodeType)
 | 
			
		||||
            {
 | 
			
		||||
                case ExpressionType.Equal:
 | 
			
		||||
                    _set.Append(", ").Append(_commonExpression.ExpressionWhereLambdaNoneForeignObject(null, _table, null, exp, null, null));
 | 
			
		||||
                    var equalBinaryExp = body as BinaryExpression;
 | 
			
		||||
                    _set.Append(", ").Append(_commonExpression.ExpressionWhereLambdaNoneForeignObject(null, _table, null, equalBinaryExp.Left, null, null))
 | 
			
		||||
                        .Append(" = ").Append(_commonExpression.ExpressionWhereLambdaNoneForeignObject(null, _table, null, equalBinaryExp.Right, null, null));
 | 
			
		||||
                    return this;
 | 
			
		||||
                case ExpressionType.MemberInit:
 | 
			
		||||
                    var initExp = body as MemberInitExpression;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user