Использование Entity Framework и Raw SQL для хранимых процедур и обработки исключений - PullRequest
0 голосов
/ 09 апреля 2020

Я могу успешно использовать хранимые процедуры, используя ExecuteSqlRawAsync или FromSqlRaw в EF, но я хочу иметь возможность перехватывать исключения в случае, если хранимая процедура возвращает ошибку, используя ERROR_SEVERITY().

Например, у меня есть оператор вставки в хранимой процедуре, и я использую Try Catch в процедуре. В улове, который я использую,

SELECT 
    ERROR_SEVERITY() AS ErrorSeverity, 
    ERROR_PROCEDURE() AS ErrorProcedure,
    ERROR_MESSAGE() AS ErrorMessage;

В C# я использую ExecuteSqlRawAsync для выполнения процедуры, и если есть ошибка SQL, я не получаю код серьезности, так как нет возврата значение в ExecuteSqlRawAsync. Нужно ли использовать FromSqlRaw для получения возвращаемого значения даже для вставки?

Я хочу перехватить исключение на стороне C#.

1 Ответ

0 голосов
/ 09 апреля 2020

Решение Йероена верное. Я удалил обработку ошибок из хранимой процедуры и, конечно, теперь я получаю SqlException в своем коде C#, который я хочу видеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...