internal void Dump(DbGroupExpressionBinding binding) { this.Begin("DbGroupExpressionBinding", "VariableName", (object)binding.VariableName, "GroupVariableName", (object)binding.GroupVariableName); this.Begin("Expression"); this.Dump(binding.Expression); this.End("Expression"); this.End("DbGroupExpressionBinding"); }
protected virtual void VisitGroupExpressionBindingPre(DbGroupExpressionBinding binding) { if (binding == null) { throw new ArgumentException("binding"); } VisitExpression(binding.Expression); }
/// <summary> /// Dumps a DbGroupExpressionBinding including its VariableName, GroupVariableName and DbExpression /// </summary> /// <param name="binding"> The DbGroupExpressionBinding to dump </param> internal void Dump(DbGroupExpressionBinding binding) { Begin("DbGroupExpressionBinding", "VariableName", binding.VariableName, "GroupVariableName", binding.GroupVariableName); Begin("Expression"); Dump(binding.Expression); End("Expression"); End("DbGroupExpressionBinding"); }
private TreeNode VisitGroupBinding(DbGroupExpressionBinding groupBinding) { TreeNode treeNode1 = this.VisitExpression(groupBinding.Expression); TreeNode treeNode2 = new TreeNode(); treeNode2.Children.Add(treeNode1); treeNode2.Text.AppendFormat((IFormatProvider)CultureInfo.InvariantCulture, "Input : '{0}', '{1}'", (object)groupBinding.VariableName, (object)groupBinding.GroupVariableName); return(treeNode2); }
private TreeNode VisitGroupBinding(DbGroupExpressionBinding groupBinding) { TreeNode inputInfo = this.VisitExpression(groupBinding.Expression); TreeNode retInfo = new TreeNode(); retInfo.Children.Add(inputInfo); retInfo.Text.AppendFormat(CultureInfo.InvariantCulture, "Input : '{0}', '{1}'", groupBinding.VariableName, groupBinding.GroupVariableName); return(retInfo); }
private void VisitGroupBinding(DbGroupExpressionBinding groupBinding) { _key.Append("GBVV"); VisitVariableName(groupBinding.VariableName); _key.Append(","); VisitVariableName(groupBinding.GroupVariableName); _key.Append("=("); groupBinding.Expression.Accept(this); _key.Append(')'); }
private void Write(string name, DbGroupExpressionBinding binding) { WriteLine(string.Format("{0} ({1}):", name, binding.GetType().Name)); _depth++; Write("Expression", binding.Expression); Write("GroupAggregate", binding.GroupAggregate); Write("GroupVariable", binding.GroupVariable); Write("GroupVariableName", binding.GroupVariableName); Write("GroupVariableType", binding.GroupVariableType); Write("Variable", binding.Variable); Write("VariableName", binding.VariableName); Write("VariableType", binding.VariableType); _depth--; }
public override SqlFragment Visit(DbGroupByExpression expression) { // first process the input DbGroupExpressionBinding e = expression.Input; SelectStatement innerSelect = VisitInputExpressionEnsureSelect(e.Expression, e.VariableName, e.VariableType); scope.Add(e.GroupVariableName, innerSelect); SelectStatement select = WrapIfNotCompatible(innerSelect, expression.ExpressionKind); CollectionType ct = (CollectionType)expression.ResultType.EdmType; RowType rt = (RowType)ct.TypeUsage.EdmType; int propIndex = 0; foreach (DbExpression key in expression.Keys) { var fragment = key.Accept(this); select.AddGroupBy(fragment); propIndex++; var colFragment = fragment as ColumnFragment; if (colFragment != null) { colFragment = colFragment.Clone(); colFragment.ColumnAlias = String.Format("K{0}", propIndex); select.Columns.Add(colFragment); } } for (int agg = 0; agg < expression.Aggregates.Count; agg++) { DbAggregate a = expression.Aggregates[agg]; DbFunctionAggregate fa = a as DbFunctionAggregate; if (fa == null) { throw new NotSupportedException(); } string alias = rt.Properties[propIndex++].Name; ColumnFragment functionCol = new ColumnFragment(null, null); functionCol.Literal = HandleFunction(fa, a.Arguments[0].Accept(this)); functionCol.ColumnAlias = alias; select.Columns.Add(functionCol); } return(select); }
protected virtual void VisitGroupExpressionBindingPost(DbGroupExpressionBinding binding) { }
protected virtual void VisitGroupExpressionBindingPre(DbGroupExpressionBinding binding) { if (binding == null) throw new ArgumentException("binding"); VisitExpression(binding.Expression); }
protected virtual void VisitGroupExpressionBindingPre(DbGroupExpressionBinding binding) { EntityUtils.CheckArgumentNull <DbGroupExpressionBinding>(binding, nameof(binding)); this.VisitExpression(binding.Expression); }
/// <summary> /// Dumps a DbGroupExpressionBinding with the specified decoration /// </summary> /// <param name="binding"> The DbGroupExpressionBinding to dump </param> /// <param name="name"> The decorating block name </param> internal void Dump(DbGroupExpressionBinding binding, string name) { Begin(name); Dump(binding); End(name); }
/// <summary> /// Convenience method to visit the specified <see cref="DbGroupExpressionBinding" />. /// </summary> /// <param name="binding"> The DbGroupExpressionBinding to visit. </param> /// <exception cref="ArgumentNullException"> /// <paramref name="binding" /> /// is null /// </exception> protected virtual void VisitGroupExpressionBindingPre(DbGroupExpressionBinding binding) { Check.NotNull(binding, "binding"); VisitExpression(binding.Expression); }
private VfpGroupExpressionBinding CreateDbGroupExpressionBinding(DbGroupExpressionBinding binding) { return(new VfpGroupExpressionBinding(binding.Expression.Accept(this), (VfpVariableReferenceExpression)binding.Variable.Accept(this), (VfpVariableReferenceExpression)binding.GroupVariable.Accept(this))); }
internal void Dump(DbGroupExpressionBinding binding, string name) { this.Begin(name); this.Dump(binding); this.End(name); }