/// <summary> /// Clones this clause. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this clause.</returns> public InsertAndReturnClause Clone(CloneContext cloneContext) { Utils.CheckNotNull("cloneContext", cloneContext); var result = new InsertAndReturnClause(WithSelector, ItemName, CollectionType); return result; }
/// <summary> /// Clones this item. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this item.</returns> public virtual Ordering Clone (CloneContext cloneContext) { ArgumentUtility.CheckNotNull ("cloneContext", cloneContext); var clone = new Ordering (Expression, OrderingDirection); return clone; }
public virtual FilterClause Clone(CloneContext cloneContext) { Utils.CheckNotNull("cloneContext", cloneContext); var clone = new FilterClause(Predicate); return clone; }
/// <summary> /// Clones this clause. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this clause.</returns> public UpsertAndReturnClause Clone(CloneContext cloneContext) { Utils.CheckNotNull("cloneContext", cloneContext); var result = new UpsertAndReturnClause(SearchSelector,InsertSelector,UpdateSelector, ItemName, CollectionType); return result; }
/// <summary> /// Clones this clause. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this clause.</returns> public RemoveAndReturnClause Clone(CloneContext cloneContext) { Utils.CheckNotNull("cloneContext", cloneContext); var result = new RemoveAndReturnClause(ItemName, CollectionType, KeySelector); return result; }
/// <summary> /// Clones this clause. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this clause.</returns> public UpdateAndReturnClause Clone(CloneContext cloneContext) { Utils.CheckNotNull("cloneContext", cloneContext); var result = new UpdateAndReturnClause(WithSelector,ItemName,CollectionType,KeySelector,Command); return result; }
public virtual GroupByClause Clone(CloneContext cloneContext) { Utils.CheckNotNull("cloneContext", cloneContext); var clone = new GroupByClause(Selector,lambdaSelector,intoIdentifier); return clone; }
/// <summary> /// Clones this clause. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this clause.</returns> public SelectClause Clone (CloneContext cloneContext) { ArgumentUtility.CheckNotNull ("cloneContext", cloneContext); var result = new SelectClause (Selector); return result; }
/// <summary> /// Clones this clause, registering its clone with the <paramref name="cloneContext"/>. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this clause.</returns> public virtual AdditionalFromClause Clone (CloneContext cloneContext) { ArgumentUtility.CheckNotNull ("cloneContext", cloneContext); var clone = new AdditionalFromClause (ItemName, ItemType, FromExpression); cloneContext.QuerySourceMapping.AddMapping (this, new QuerySourceReferenceExpression (clone)); return clone; }
/// <inheritdoc /> public override ResultOperatorBase Clone (CloneContext cloneContext) { ArgumentUtility.CheckNotNull ("cloneContext", cloneContext); var clone = new FetchManyRequest (RelationMember); foreach (var innerFetchRequest in InnerFetchRequests) clone.GetOrAddInnerFetchRequest ((FetchRequestBase) innerFetchRequest.Clone (cloneContext)); return clone; }
/// <summary> /// Clones this clause. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this clause.</returns> public OrderByClause Clone (CloneContext cloneContext) { ArgumentUtility.CheckNotNull ("cloneContext", cloneContext); var result = new OrderByClause(); foreach (var ordering in Orderings) { var orderingClone = ordering.Clone (cloneContext); result.Orderings.Add (orderingClone); } return result; }
IBodyClause IBodyClause.Clone(CloneContext cloneContext) { return Clone(cloneContext); }
/// <summary> /// Clones this clause, registering its clone with the <paramref name="cloneContext"/>. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this clause.</returns> public JoinClause Clone (CloneContext cloneContext) { ArgumentUtility.CheckNotNull ("cloneContext", cloneContext); var clone = new JoinClause (ItemName, ItemType, InnerSequence, OuterKeySelector, InnerKeySelector); cloneContext.QuerySourceMapping.AddMapping (this, new QuerySourceReferenceExpression (clone)); return clone; }
/// <summary> /// Clones this clause, registering its clone with the <paramref name="cloneContext"/>. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns>A clone of this clause.</returns> public GroupJoinClause Clone (CloneContext cloneContext) { ArgumentUtility.CheckNotNull ("cloneContext", cloneContext); var clone = new GroupJoinClause (ItemName, ItemType, JoinClause.Clone (cloneContext)); cloneContext.QuerySourceMapping.AddMapping (this, new QuerySourceReferenceExpression (clone)); return clone; }
public IBodyClause Clone(CloneContext cloneContext) { return new LetClause(ItemName, LetExpression); }
/// <summary> /// Clones this clause. /// </summary> /// <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="CloneContext"/>.</param> /// <returns></returns> public virtual WhereClause Clone (CloneContext cloneContext) { ArgumentUtility.CheckNotNull ("cloneContext", cloneContext); var clone = new WhereClause (Predicate); return clone; }
/// <summary> /// Clones this <see cref="QueryModel"/>, returning a new <see cref="QueryModel"/> equivalent to this instance, but with its clauses being /// clones of this instance's clauses. Any <see cref="QuerySourceReferenceExpression"/> in the cloned clauses that points back to another clause /// in this <see cref="QueryModel"/> (including its subqueries) is adjusted to point to the respective clones in the cloned /// <see cref="QueryModel"/>. Any subquery nested in the <see cref="QueryModel"/> is also cloned. /// </summary> /// <param name="querySourceMapping">The <see cref="QuerySourceMapping"/> defining how to adjust instances of /// <see cref="QuerySourceReferenceExpression"/> in the cloned <see cref="QueryModel"/>. If there is a <see cref="QuerySourceReferenceExpression"/> /// that points out of the <see cref="QueryModel"/> being cloned, specify its replacement via this parameter. At the end of the cloning process, /// this object maps all the clauses in this original <see cref="QueryModel"/> to the clones created in the process. /// </param> public QueryModel Clone (QuerySourceMapping querySourceMapping) { ArgumentUtility.CheckNotNull ("querySourceMapping", querySourceMapping); var cloneContext = new CloneContext (querySourceMapping); var queryModelBuilder = new QueryModelBuilder(); queryModelBuilder.AddClause (MainFromClause.Clone (cloneContext)); foreach (var bodyClause in BodyClauses) queryModelBuilder.AddClause (bodyClause.Clone (cloneContext)); queryModelBuilder.AddClause (SelectClause.Clone (cloneContext)); foreach (var resultOperator in ResultOperators) { var resultOperatorClone = resultOperator.Clone (cloneContext); queryModelBuilder.AddResultOperator (resultOperatorClone); } var clone = queryModelBuilder.Build (); clone.TransformExpressions (ex => CloningExpressionTreeVisitor.AdjustExpressionAfterCloning (ex, cloneContext.QuerySourceMapping)); clone.ResultTypeOverride = ResultTypeOverride; return clone; }