У меня странная ситуация. У меня есть хранимая процедура, которая возвращает данные обратно, все работает нормально, пока не возникло исключение SQL. Когда возникает исключение SQL, оно обрабатывается функцией Begin catch, но Dapper по какой-то причине выдает исключение
Последовательность не содержит элементов
Затем я заменил QuerySingleAsync на QueryAsync, чтобы иметь возможность видеть сам результат SQL. Это помогло отключить исключение (которое было сгенерировано картографом Dapper), но результат возвращается пустым. Я не могу понять, почему Даппер поступает таким образом.
SQL
ALTER PROCEDURE [dbo].[MyFavSP]
@SomeName VARCHAR(60),
@SomeValue BIGINT
AS
BEGIN
DECLARE @errMessage VARCHAR(256)
DECLARE @sqlErrCode INT = 0;
BEGIN TRY
SELECT *
FROM MyTable
WHERE 1/0 = 25
SET @sqlErrCode = 111
SET @errMessage = 'good'
END TRY
BEGIN CATCH
SET @sqlErrCode = 999
SET @errMessage = 'bad'
END CATCH
SELECT @sqlErrCode ErrorCode, @errMessage ErrorMessage
END
C#
var result = await connection.QuerySingleAsync("dbo.MyFavSP",
new { SomeName = "MyName", SomeValue = 123 },
commandType: CommandType.StoredProcedure);
Где мой результат
public class MyResult
{
public int ErrorCode { get; set; }
public string ErrorMessage { get; set; }
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... -procedure
Dapper не возвращает значение из try-catch в хранимой процедуре ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Обновление модели в try/catch: модель запоминает ошибочные значения обновления в catch
Anonymous » » в форуме Php - 0 Ответы
- 108 Просмотры
-
Последнее сообщение Anonymous
-