Microsoft.Data.SqlClient
Modern SQL Server data provider for .NET with active support for SQL Server and Azure SQL scenarios.
Decision Guide
Even when ORMs are used, direct ADO.NET clients remain a critical layer for connection behavior, resiliency, and diagnostics. Choose provider packages that match your engine roadmap and operational requirements.
The decision to make
Which database client package should your .NET service standardize on per engine?
Curated starting points to compare. Always evaluate suitability against your specific project requirements.
Modern SQL Server data provider for .NET with active support for SQL Server and Azure SQL scenarios.
High-quality PostgreSQL data provider for .NET with strong performance and PostgreSQL feature coverage.
Fully managed async-first MySQL connector widely used for MySQL and MariaDB workloads.
Select one supported provider per engine and keep its version compatible with the runtime and ORM. Centralize connection setup, pool configuration, retries, and command timeout defaults.
Apply least-privilege database identities by workload. Separate application runtime permissions from migration and operational-admin permissions.
Instrument connection opens, command durations, timeout rates, and pool exhaustion. Investigate patterns with database-native monitoring and query plans, not application logs alone.
Risk
Checklist
Revisit database client choices when changing cloud database offerings, introducing stronger compliance controls, or seeing recurring production connection incidents.