Для очень конкретного c запроса я получаю исключение конца потока.
Это всегда происходит для одного и того же запроса - и этот запрос можно легко выполнить как запрос SQL, но
, но, используя dapper и его запрос на соединение, он как-то кажется неудачным
Я получаю EndOfStreamException: Attempted to read past the end of the stream.
This exception was originally thrown at this call stack:
Npgsql.NpgsqlReadBuffer.Ensure.__EnsureLong|0()
Я не уверен, почему я получаю это исключение и где оно идет не так - это только возвращает и выдает ошибку для одного указанного c запроса с указанным набором c параметров.
Я не уверен, что понимаю, вызвана ли эта ошибка фактическим запросом SQL или параметрами, анализируемыми в нем, поскольку мой querySingle выполняется как
IDictionary<string, object> insertedEntityRegistration = connection.QuerySingle(insertNewRegistrationSql, parameters);
Full stacktrace:
at Npgsql.NpgsqlReadBuffer.<>c__DisplayClass34_0.<<Ensure>g__EnsureLong|0>d.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at Npgsql.NpgsqlConnector.<>c__DisplayClass160_0.<<DoReadMessage>g__ReadMessageLong|0>d.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at Npgsql.NpgsqlDataReader.<NextResult>d__44.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Npgsql.NpgsqlDataReader.NextResult()
at Npgsql.NpgsqlCommand.<ExecuteReaderAsync>d__102.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Threading.Tasks.ValueTask`1.get_Result()
at System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult()
at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior)
at Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
at Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior) in C:\projects\dapper\Dapper\SqlMapper.cs:line 1051
at Dapper.SqlMapper.QueryRowImpl[T](IDbConnection cnn, Row row, CommandDefinition& command, Type effectiveType) in C:\projects\dapper\Dapper\SqlMapper.cs:line 1177
at Dapper.SqlMapper.QuerySingle[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in C:\projects\dapper\Dapper\SqlMapper.cs:line 781
at Dapper.SqlMapper.QuerySingle(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in C:\projects\dapper\Dapper\SqlMapper.cs:line 687
Я полностью потерян из-за того, что здесь идет не так - поскольку запрос может выполняться без dapper без каких-либо проблем, я не понимаю, почему это происходит при выполнении с dapper.
все параметры есть - все они имеют значения, сопоставляются с правыми.
Есть ли возможность отладить сгенерированный запрос? Что может вызвать эту проблему?
Сам запрос похож на
INSERT INTO table (a,b,c,d,e,f,g,h)
VALUES (1, tsrange('0001-01-01T00:00:01', '9999-01-01T00:00:02'), 'Application', tsrange('0001-01-01T00:00:01', '9999-01-01T00:00:02'),
'name','mail',4511,4511)
RETURNING a,b,c,d,e,f,g,h;