使用 Entity Framework 检查连接

Check connection using Entity Framework

如何使用 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. 数据库服务器没有响应,因为 SqlServer 已关闭。
  2. 服务器计算机出现故障(例如电源故障)。
  3. 您连接的服务器不存在。
  4. 服务器存在,但您连接到错误的端口。
  5. 数据库拒绝连接,因为您没有被授权。
  6. 数据库服务器繁忙,响应速度很慢。
  7. 网络不好/繁忙,数据传输很慢。
  8. 服务器在那里,但配置方式拒绝您的连接。例如,它需要 TCP,但您尝试使用命名管道。

还有更多。针对所有这些进行验证是绝对不可能的。