Die Antwort ist ein bisschen komplizierter. Im Allgemeinen verwendet ADO.NET Pooling. Auf diese Weise wird die Leistung erhöht, da die Notwendigkeit zum Öffnen und Schließen von Verbindungen vermieden wird, was sowohl auf der Client- als auch der Serverseite langsam ist.
Solange was mit Ihrer Verbindung passiert, wird es entsorgt, wenn der GC es sammelt. Nicht-deterministisch. Du kannst es nicht kontrollieren.
Aber die Entsorgung ist nicht dasselbe wie das Schließen der Verbindung, sondern das erneute Verfügbarmachen im Pool.
Sie können Verbindungs-Pooling in Ihrer Verbindungszeichenfolge steuern: Connection Pooling for the .NET Framework Data Provider for SQL Server
Auf diese Weise können Sie die Poolgröße, Lebensdauer usw. steuern
Im C# -Code sie, die beste Praxis für Einweg-Objekte, wie DB Connections, ist es in einem using
Block zu erstellen, der Ihr Objekt auch im Falle einer unbehandelten Ausnahme entsorgen wird.
Bitte sehen Sie meine Antwort. Ich denke, es beantwortet wirklich deine Frage. – JotaBe