Hintergrund:
Ich habe eine Anwendung, die ich meine Schnittstellenlogik von meiner Middle-Tier-Logik, die die Abfragen an die Datenbank behandelt, getrennt habe. Ich mache eine Menge von benutzerdefinierten Sortierung und Einengungen, so dass ich nicht viele SqlDataSources verwenden und stattdessen viele gespeicherte Prozeduren mit SqlCommands aufrufen.
Ich verwende die Formularauthentifizierung, um geschützte Unterverzeichnisse zu erstellen. In den web.config-Dateien in den geschützten Verzeichnissen habe ich mehr Verbindungszeichenfolgen, die mit Benutzern mit Rollen mit höheren Rechten verknüpft sind.
Frage:
Soll ich ein SqlConnection-Objekt in meiner mittleren Schicht teilen, um sich wiederholenden Code zu entfernen, oder sollte ich für jede Operation eine neue Instanz erstellen? Eine gemeinsam genutzte SqlConnection könnte ich wieder instanziieren, wenn ich Verbindungszeichenfolgen ändern muss, um Zugriff auf geschützte gespeicherte Prozeduren zu erhalten. Gibt es hier eine Best Practice?
Machen Sie sich keine Sorgen um die Freigabe, um Ressourcen zu sparen. .NET wird das für Sie verwalten, es führt standardmäßig das Pooling von Verbindungen durch. Schreiben Sie den Code, um klar und verständlich zu sein, und lassen Sie .NET sich um diese Details kümmern.
Erstellen Sie einen neuen (und disponieren Sie ihn ordnungsgemäß) und nutzen Sie das Pooling von Verbindungen .
>Tags und Links sql sql-server c# asp.net sqlconnection