protected override IBuildContext BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo) { var updateType = methodCall.Method.Name switch { nameof(LinqExtensions.UpdateWithOutput) => UpdateType.UpdateOutput, nameof(LinqExtensions.UpdateWithOutputInto) => UpdateType.UpdateOutputInto, _ => UpdateType.Update, }; var sequence = builder.BuildSequence(new (buildInfo, methodCall.Arguments[0])); var updateStatement = sequence.Statement as SqlUpdateStatement ?? new SqlUpdateStatement(sequence.SelectQuery); var genericArguments = methodCall.Method.GetGenericArguments(); var outputExpression = (LambdaExpression?)methodCall.GetArgumentByName("outputExpression")?.Unwrap(); Type?objectType; sequence.Statement = updateStatement;