public virtual GroupByClause Clone(CloneContext cloneContext) { Utils.CheckNotNull("cloneContext", cloneContext); var clone = new GroupByClause(Selector, lambdaSelector, intoIdentifier); return(clone); }
protected override QueryModel ApplyNodeSpecificSemantics(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext) { Utils.CheckNotNull("queryModel", queryModel); var groupByClause = new GroupByClause(GetResolvedSelector(clauseGenerationContext),Selector,intoIdentifier); queryModel.BodyClauses.Add(groupByClause); clauseGenerationContext.AddContextInfo(this, groupByClause); queryModel.SelectClause.Selector = GetResolvedAdaptedSelector(clauseGenerationContext); return queryModel; }
protected override QueryModel ApplyNodeSpecificSemantics(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext) { Utils.CheckNotNull("queryModel", queryModel); var groupByClause = new GroupByClause(GetResolvedSelector(clauseGenerationContext), Selector, intoIdentifier); queryModel.BodyClauses.Add(groupByClause); clauseGenerationContext.AddContextInfo(this, groupByClause); queryModel.SelectClause.Selector = GetResolvedAdaptedSelector(clauseGenerationContext); return(queryModel); }
public void VisitGroupByClause(GroupByClause groupByClause, QueryModel queryModel, int index) { var parentMVisitor = LinqUtility.FindParentModelVisitor(this); parentMVisitor.GroupByNameCounter++; groupByClause.IntoName = "C" + parentMVisitor.GroupByNameCounter; groupByClause.FuncIntoName = Db.Setting.Linq.TranslateGroupByIntoName; groupByClause.FromParameterName = queryModel.MainFromClause.ItemName; QueryText.Append(" collect "); if(groupByClause.Selector.NodeType != ExpressionType.New) { groupByClause.CollectVariableName = "CV" + parentMVisitor.GroupByNameCounter; QueryText.AppendFormat(" {0} = ", LinqUtility.ResolvePropertyName(groupByClause.CollectVariableName)); } GetAqlExpression(groupByClause.Selector, queryModel, true); QueryText.AppendFormat(" into {0} ", LinqUtility.ResolvePropertyName(groupByClause.TranslateIntoName())); groupByClause.Visited = true; }
public virtual GroupByClause Clone(CloneContext cloneContext) { Utils.CheckNotNull("cloneContext", cloneContext); var clone = new GroupByClause(Selector,lambdaSelector,intoIdentifier); return clone; }
public void VisitGroupByClause(GroupByClause groupByClause, QueryModel queryModel, int index) { var parentMVisitor = LinqUtility.FindParentModelVisitor(this); parentMVisitor.GroupByNameCounter++; groupByClause.IntoName = "C" + parentMVisitor.GroupByNameCounter; groupByClause.FuncIntoName = Db.Setting.Linq.TranslateGroupByIntoName; groupByClause.FromParameterName = queryModel.MainFromClause.ItemName; QueryText.Append(" collect "); var memberExpression = groupByClause.Selector as MemberExpression; if (memberExpression != null) QueryText.AppendFormat(" {0} = ", LinqUtility.ResolvePropertyName(memberExpression.Member.Name)); GetAqlExpression(groupByClause.Selector, queryModel, true); QueryText.AppendFormat(" into {0} ", LinqUtility.ResolvePropertyName(groupByClause.TranslateIntoName())); groupByClause.Visited = true; }