Можно ли извлечь коды ошибок SQL из неудачных операций с данными в рамках структуры объекта? - PullRequest
1 голос
/ 01 декабря 2011

SQL возвращает коды, которым предшествует знак минус (-), указывающий на то, что выполнение оператора SQL было неудачным.(Все определенные в SQL коды ошибок являются отрицательными целыми числами).

В предыдущих приложениях я использовал слой данных SQL на основе хранимых процедур, который проверяет эти коды ошибок и переводит их в удобные для пользователя сообщения об ошибках, которые затем отображаются вконечный пользователь.

Я проверял правильность замены старой системы на основе хранимых процедур на систему, основанную на Entity Framework.Единственная проблема, с которой я сталкивался до сих пор, заключается в том, что я не могу найти какой-либо способ получить коды ошибок SQL, которые объясняют любые сбои операций, связанных с базой данных.После тщательного поиска в Интернете и ничего не обнаружив, я решил, что кто-то здесь должен знать ответ.

Поэтому мой простой вопрос ... есть ли способ получить доступ к кодам ошибок SQL при каждом выполнении оператора SQLпри использовании Entity Framework?

Большое спасибо заранее.

1 Ответ

3 голосов
/ 01 декабря 2011

Да, вы можете поймать SqlException, который имеет подробную информацию о вашем исключении.

try
{
   // do your changes
   myDbContext.SaveChanges();
}
catch (SqlException ex)
{
    // ex.LineNumber
    // ex.ErrorCode
    foreach (SqlError error in ex.Errors)
    {
        // error.LineNumber
    }
}

Больше информации о SqlException Class

надеюсь, что этопомогает

...