/// <summary> /// 访问 <see cref="BatchCommandExpression"/> 表达式。 /// </summary> /// <param name="batch"></param> /// <returns></returns> protected override Expression VisitBatch(BatchCommandExpression batch) { _isAsync = _isAsync || batch.IsAsync; var operation = batch.Operation; if (operation.Body is InsertCommandExpression insert) { if (batch.Arguments.Count == 0) { return(_isAsync ? Expression.Constant(Task.FromResult(-1)) : Expression.Constant(-1)); } var rewriter = insert.Update(insert.Table, VisitColumnAssignments(insert.Assignments)); if (rewriter != insert) { operation = Expression.Lambda(rewriter, operation.Parameters.ToArray()); } } batch = batch.Update(batch.Input, operation, batch.Arguments); return(BuildExecuteBatch(batch)); }
/// <summary> /// 浏览 <see cref="BatchCommandExpression"/> 表达式。 /// </summary> /// <param name="batch"></param> /// <returns></returns> protected override Expression VisitBatch(BatchCommandExpression batch) { if (batch.Arguments.Count == 0) { return(Expression.Constant(-1)); } var operation = batch.Operation; if (operation.Body is CommandExpression command) { if (command.NodeType == DbExpressionType.Insert) { var insert = command as InsertCommandExpression; var rewriter = insert.Update(insert.Table, VisitColumnAssignments(insert.Assignments)); if (rewriter != insert) { operation = Expression.Lambda(rewriter, operation.Parameters.ToArray()); } } } batch = batch.Update(batch.Input, operation, batch.Arguments); return(BuildExecuteBatch(batch)); }
protected override Expression VisitBatch(BatchCommandExpression batch) { var operation = batch.Operation; var command = operation.Body as CommandExpression; if (command != null) { if (command.NodeType == DbExpressionType.Insert) { var insert = command as InsertCommandExpression; var rewriter = insert.Update(insert.Table, VisitColumnAssignments(insert.Assignments)); if (rewriter != insert) { operation = LambdaExpression.Lambda(rewriter, operation.Parameters.ToArray()); } } } batch = batch.Update(batch.Input, operation); return(BuildExecuteBatch(batch)); }