是否可以从不成功的实体框架数据操作中检索SQL错误代码?

时间:2011-12-01 11:35:18

标签: sql-server entity-framework error-code

SQL返回前面带有减号( - )的代码表示SQL语句执行不成功。 (所有SQL定义的错误代码都是负整数)。

在以前的应用程序中,我使用了基于存储过程的SQL数据层来检查这些错误代码,并将它们转换为用户友好的错误消息,然后显示给最终用户。

我一直在测试基于实体框架替换基于旧存储过程的系统的有效性。到目前为止我遇到的唯一问题是我找不到任何方法来检索解释任何数据库相关操作失败的SQL错误代码。经过广泛的在线搜索并找不到任何东西,我认为这里有人必须知道答案。

所以我的简单问题是......在使用实体框架时,有什么办法可以从每个SQL语句执行中访问SQL错误代码吗?

非常感谢提前。

1 个答案:

答案 0 :(得分:2)

是的,你可以抓住SqlException有关你的例外的详细信息。

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

有关SqlException Class

的更多信息

希望这会有所帮助