mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 20:38:16 +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