在正常的實體框架中,我能夠使用dbContext.Database.Exists()檢查數據庫連接,但在Entity Framework Core中不存在。實體框架核心中的dbContext.Database.Exists()的替代選擇是什麼?如何檢查實體框架核心中的數據庫連接?
回答
目前(到目前爲止最新的EF Core 2.0)DatabaseFacade
類(這是DbContext.Database
屬性的類型)並未公開Exists
方法。
但是,相應的EF6方法由EF Core IRelationalDatabaseCreator
服務提供。您可以使用自定義的擴展方法,這樣將其暴露:
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage;
public static class DatabaseFacadeExtensions
{
public static bool Exists(this DatabaseFacade source)
{
return source.GetService<IRelationalDatabaseCreator>().Exists();
}
}
但請注意,Exists
方法絕不是用來檢查數據庫連接,而不是檢查數據庫需要創建(內部時使用你可以撥打EnsureCreated
,Migrate
等方法)。
中的狀態屬性您認爲測試數據庫運行狀況的好方法是什麼?我試圖在我的負載均衡器運行狀況檢查中實現一個。 – ArcadeRenegade
a: await _context.Database.ExecuteSqlCommandAsync(「SELECT 1」); – ArcadeRenegade
@ArcadeRenegade我不能說完全。我會創建(又一個)自定義(擴展)方法,並與實現一起玩 - 我將它想象成更像「OpenConnection」/「CloseConnection」調用對。 –
- 1. 實體框架核心連接管理
- 2. 如何在.NET核心中取消實體框架更新 - 數據庫核心
- 3. 實體框架和數據庫連接
- 4. 在實體框架核心中自動創建數據庫
- 5. WithOptional實體框架核心
- 6. 實體框架核心:InvalidOperationException
- 7. 實體框架核心通用查詢
- 8. 查詢數據未使用實體框架的核心
- 9. 實體框架從現有數據庫創建核心模型
- 10. 鎖定數據庫行使用實體框架核心讀取
- 11. 實體框架核心不會更新數據庫
- 12. 實體框架核心2.0動態創建數據庫
- 13. 實體框架核心更新 - 數據庫特定遷移
- 14. 實體框架核心中的ObjectStateManager.ObjectStateManagerChanged
- 15. 如何在實體框架連接上更改數據庫
- 16. 實體框架如何管理數據庫連接?
- 17. 實體框架CTP5:如何使用C#連接MySql數據庫?
- 18. 左外連接與實體框架核心
- 19. 實體框架核心連接字符串 - 環境變量
- 20. 左外連接實體框架核心1.1.0
- 21. Npgsql連接字符串與實體框架核心
- 22. dotnet核心實體框架連接關閉
- 23. 如何檢查父實體是否包含核心數據中的子實體?
- 24. 如何加載相關的實體與實體框架核心
- 25. 實體框架核心1.1內存數據庫失敗添加新實體
- 26. 框架中的核心數據只顯示一個實體
- 27. 實體框架核心數據註釋數據庫生成的值
- 28. 實體框架4 - 檢查實體是否連接
- 29. 實體框架如何模擬連接表中的數據?
- 30. 對實體框架的核心
你的意思是檢查連接狀態嗎? –
我只想檢查我的連接字符串是否有效,並且它可以成功連接到數據庫。 –
您可以檢查連接實例 –