处理DbContext创建异常

时间:2016-10-25 11:14:10

标签: c# entity-framework exception-handling

在正常情况下没有问题,但是当数据库无法找到时,可视工作室会显示SQLExceptions被抛出并被抓住。

我试图包装DbContext的创建,但它永远不会陷入困境并继续陷入新的MyDbContext()

MyDbContext db = null;
try
{
    db = new MyDbContext ();
    myData = db.MyData.ToList (); // myData defined earlier
}
catch (System.Data.Entity.Core.EntityException ) // I tried to catch System.Exception with the same result
{
    MessageBox.Show ("Can't connect to server.");
    return;
}
finally
{
    db?.Dispose ();
}

那么有什么方法可以捕获抛出的异常或者发现连接无法建立?

为了测试错误的连接,我将连接字符串Data Source更改为Localhost1之类的内容。

1 个答案:

答案 0 :(得分:1)

所以在等待了很长时间并且看到内部抛出异常几次之后,System.Data.SqlClient.SqlException最终会被抛到外面并且你能够抓住它。

如果更改连接字符串的身份验证,则会立即抛出异常,因此在放弃和转发异常之前,可能会尝试多次联系数据源。