/// <summary> /// Cria a expresão de agrupamento por. /// </summary> /// <returns></returns> protected override LambdaExpression CreateGroupByExpression() { MemberAccessExpressionBuilderBase base2 = ExpressionBuilderFactory.MemberAccess(this.Queryable, this._groupDescriptor.MemberType, this._groupDescriptor.Member); base2.ParameterExpression = base.ParameterExpression; return(base2.CreateLambdaExpression()); }
/// <summary> /// Cria uma expressão seletora do membro. /// </summary> /// <returns></returns> private System.Linq.Expressions.LambdaExpression CreateMemberSelectorExpression() { var base2 = ExpressionBuilderFactory.MemberAccess(base.ItemType, (Type)null, this.Function.SourceField); base2.Options.CopyFrom(base.Options); var memberExpression = base2.CreateMemberAccessExpression(); return(System.Linq.Expressions.Expression.Lambda(this.ConvertMemberAccessExpression(memberExpression), new System.Linq.Expressions.ParameterExpression[] { base2.ParameterExpression })); }
/// <summary> /// Cria a expressão do membro. /// </summary> /// <returns></returns> protected virtual Expression CreateMemberExpression() { Type memberType = this.FilterDescriptor.MemberType; MemberAccessExpressionBuilderBase base2 = ExpressionBuilderFactory.MemberAccess(base.ParameterExpression.Type, memberType, this.FilterDescriptor.Member); base2.Options.CopyFrom(base.Options); base2.ParameterExpression = base.ParameterExpression; Expression expression = base2.CreateMemberAccessExpression(); if ((memberType != null) && (expression.Type.GetNonNullableType() != memberType.GetNonNullableType())) { expression = Expression.Convert(expression, memberType); } return(expression); }