Health Check Ping with EF Core and MSSQL

Sometimes it is quite useful to be able to send a query to the MSSQL server independently of its schema; for example to check if the server is principally reachable and the connection information as well as the credentials are correct.

This is also very useful for the health checks in ASP.NET Core or Azure App Service , to check if the state is healthy while generating the least possible database load.

SELECT 1

So the goal is to send the server a message that it can answer immediately without dependencies. For this you can use a special feature, where all databases have this feature implemented in some way.

In the case of the MSSQL server it is SELECT 1;

1SELECT 1

So the server is sent a query that has only a SELECT, where the numeric value also corresponds to the answer. So a SELECT 1 becomes the answer 1.
There must be a database on the server to connect to, but no tables must be deployed.

Entity Framework

In addition to handling with entities, the Entity Framework can also work directly with Raw SQL. For this purpose the method ExecuteSqlRawAsync can be used.

Since we are in principle only interested in the execution (an exception should therefore be thrown if it does not work) but not the result (here 1), the following basic implementation is sufficient.

This method can now be used for pings.

Why you should no longer use var in C#

Sep 09, 2022 - 4 min read

Why you should no longer use var in C#

Beginning with C# 3, variables that are declared at method scope can have an implicit “type” var. An implicitly typed local …

Use ASP.NET Core Options with an instance

Jun 10, 2022 - 3 min read

Use ASP.NET Core Options with an instance

ASP.NET Core provides a built-in mechanism for configuring an application’s options using the Options pattern. This pattern allows you …


Let's Work Together

Looking for an experienced Platform Architect or Engineer for your next project? Whether it's cloud migration, platform modernization or building new solutions from scratch - I'm here to help you succeed.

New Platforms
Modernization
Training & Consulting