簡體   English   中英

使用實體框架檢查連接

[英]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);        
}

在將我的項目添加到數據庫之前,如何檢查連接是否已建立? 我無法打開連接,因為在連接字符串損壞的情況下需要大量時間。 這意味着我上面的 state 檢查是沒有意義的。 對於 context.Database.Exist() 也有同樣的擔憂,如果連接字符串損壞,它也會花費很長時間。

我的目標是在執行任何關鍵操作之前檢測損壞的連接字符串。

您想預測是否可以連接到您的數據庫。 好吧,這是不可能的。 在您嘗試連接之前,無法知道您是否會連接。 與數據庫的連接可能由於各種原因而失敗:

  1. DB Server 沒有響應,因為 SqlServer 已關閉。
  2. 服務器計算機已關閉(例如電源故障)。
  3. 您連接的服務器不存在。
  4. 服務器存在,但您連接到錯誤的端口。
  5. 數據庫拒絕連接,因為您未獲得授權。
  6. 數據庫服務器很忙,響應很慢。
  7. 網絡不好/繁忙,數據傳輸非常緩慢。
  8. 服務器在那里,但配置為拒絕您的連接。 例如,它想要 TCP,但您嘗試命名管道。

還有很多。 對所有這些都進行驗證是絕對不可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM