使用实体框架检查连接

时间:2019-10-23 14:57:24

标签: c# entity-framework-6

如何使用Entity Framework 6检查数据库连接?

这是我的代码:

using (var context = new DatabaseDataModel(connectionString))
{
    if (context.Database.Connection.State != System.Data.ConnectionState.Open)
        return;

    if (!context.Database.Exists())
        return;

    context.Items.Add(item);        
}

在将项目添加到数据库之前,如何检查连接是否建立?我无法打开连接,因为连接字符串损坏会花费很多时间。这意味着我上面的状态检查是没有意义的。与context.Database.Exist()相同,在连接字符串损坏的情况下也将花费很长时间。

我的目的是在执行任何关键操作之前检测出损坏的连接字符串。

1 个答案:

答案 0 :(得分:0)

如果要连接到数据库,您要预测。好吧,这是不可能的。无法知道如果您将连接直到。与数据库的连接可能由于各种原因而失败:

  1. 由于SqlServer关闭,数据库服务器没有响应。
  2. 服务器计算机已关闭(例如,电源故障)。
  3. 您连接的服务器不存在。
  4. 服务器已存在,但连接端口错误。
  5. 数据库由于您未被授权而拒绝连接。
  6. 数据库服务器正忙并且响应非常缓慢。
  7. 网络故障/繁忙,数据传输非常缓慢。
  8. 服务器在那里,但是以拒绝您连接的方式进行配置。例如,它需要TCP,但是您尝试使用命名管道。

还有更多。完全不可能对所有这些进行验证。

相关问题