public override RawResult Run(string cypher, Dictionary <string, object?>?parameters, [CallerMemberName] string memberName = "", [CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0)
        {
            if (StatementRunner is null)
            {
                throw new InvalidOperationException("The current transaction was already committed or rolled back.");
            }

#if DEBUG
            Logger?.Start();
#endif
            neo4j.IStatementResult results = StatementRunner.Run(cypher, parameters);

#if DEBUG
            if (Logger != null)
            {
                results.Peek();
                Logger.Stop(cypher, parameters: parameters, callerInfo: new List <string>()
                {
                    memberName, sourceFilePath, sourceLineNumber.ToString()
                });
            }
#endif

            return(new Neo4jRawResult(results));
        }