Hat man ein .NET Core/.NET 5+ Projekt welches eine .NET 4.x Library verwendet die wiederum System.Data.SqlClient (SqlConnection, SqlTransaction, etc.) verwendet läuft man in diese beiden Fehler (hier von einem F# Web API Projekt):

FS1108 The type 'SqlConnection' is required here and is unavailable. You must add a reference to assembly 'System.Data.SqlClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
FS1109 A reference to the type 'System.Data.SqlClient.SqlConnection' in assembly 'System.Data' was found, but the type could not be found in that assembly

Gerne wird im Internetz dann darauf verwiesen dass .NET Core/.NET 5+ System.Data.SqlClient nicht mehr per Default referenziert und man doch das gleichnamige Nuget installieren solle – nur hilft das halt nur wenn man z.B. eine alte .NET Framework Anwendung auf .NET Core/.NET 5+ bringt; beim Referenzierungsfall (.NET neu referenziert .NET alt) bringt das nichts.

Dort ist dann sowohl das alte als auch das neue Projekt auf das neue Nuget Microsoft.Data.SqlClient umzustellen – liefert die gleichen Klassen und funktionieren dann auch in beiden Welten – das “alte” .NET 4.x Projekt muss dafür aber (aktuell) auf Minimum .NET 4.6.1 sein.

Also Nuget installieren und die usings/opens von System.Data.SqlClient auf Microsoft.DataSqlClient umstellen – fertig.

Referenz: https://devblogs.microsoft.com/dotnet/introducing-the-new-microsoftdatasqlclient/