.NET Core提供對應方法可進行健康檢查,那麼在EF Core中是否也提供了相應的方式呢?EF Core 2.2+(包含2.2)版本提供了針對上下文的健康檢查,接下來咱們直接利用.NET 5.0版本進行演示數據庫
咱們知道在.NET Core中使用健康檢查直接在對應服務中添加健康檢查擴展方法便可,以下:app
services.AddHealthChecks()
在上述基礎上咱們再添加針對EF Core的診斷包才能進行健康檢查,首先,咱們安裝診斷包spa
Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore3d
接下來咱們使用上述診斷包針對以下上下文健康檢查擴展方法AddDbContext,同時咱們注入示例上下文,以下:code
services.AddHealthChecks().AddDbContextCheck<EFCoreDbContext>(); services.AddDbContext<EFCoreDbContext>(options => { options.UseSqlServer(@"Server=.;Database=EFCore;Trusted_Connection=True;"); });
最後咱們在路由中映射健康檢查路由節點,以下:blog
app.UseEndpoints(endpoints => { endpoints.MapHealthChecks("/context/health"); });
接下來咱們來訪問上述健康檢查路由節點看看路由
咱們看到如上將返回Healthy字符串,說明一切健康(正常),當咱們注入針對EF Core的診斷包後,究竟是根據什麼來判斷是否健康或正常呢,不用講,咱們都能猜到,那就是對所配置數據庫的訪問字符串
反之,當非健康狀態時,此時頁面和控制檯都將返回對應信息,以下:it
💡 EF Core健康檢查出現於 2.2+(包含2.2)io
💡 安裝診斷包:Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore
💡 在添加健康檢查擴展方法基礎上,添加針對上下文健康檢查擴展方法AddDbContextCheck