1

SQLは、マイナス記号(-)が前に付いたコードを返します。これは、SQLステートメントの実行が失敗したことを示します。(SQLで定義されたすべてのエラーコードは負の整数です)。

以前のアプリケーションでは、これらのエラーコードをチェックし、それらをユーザーフレンドリーなエラーメッセージに変換してエンドユーザーに表示するストアドプロシージャベースのSQLデータレイヤーを使用していました。

古いストアドプロシージャベースのシステムを、EntityFrameworkベースのシステムに置き換えることの妥当性をテストしてきました。これまでに遭遇した唯一の問題は、データベース関連の操作の失敗を説明するSQLエラーコードを取得する方法が見つからないことです。オンラインで徹底的に検索して何も見つからなかった後、私はここの誰かが答えを知らなければならないと思いました。

だから私の簡単な質問は...エンティティフレームワークを使用しているときに各SQLステートメントの実行からSQLエラーコードにアクセスできる方法はありますか?

よろしくお願いします。

4

1 に答える 1

3

SqlExceptionはい、あなたはあなたの例外についての詳細な情報を持っているのを捕まえることができます。

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

SqlExceptionクラスに関する詳細情報

お役に立てれば

于 2011-12-01T11:37:36.420 に答える