Pourquoi Dapper n'exige-t-il pas une connexion ouverte?

.net dapper

Question

La documentation Dapper indique qu'il nécessite une connexion ouverte . Cependant, dans le cadre du cours pluralsight de Steve Michelotti, il n'ouvre pas la connexion avant d'exécuter SQL, et j'ai constaté que mes propres tests de connexion à SQL Server et à MS Access le confirmaient.

Est-il recommandé de contrôler manuellement les connexions ou est-il correct de laisser cela à Dapper? Y a-t-il des situations où Dapper exige absolument qu'une connexion ouverte soit fournie?

Voici un exemple du code que j'exécute sur une base de données Access. À aucun moment je n'ouvre la connexion, mais Dapper renvoie avec bonheur une collection d'objets du Fonds:

Private ReadOnly _conn As IDbConnection = New OleDbConnection(ConnectionStrings.GetAccessConnectionString(ConnectionStrings.AccessVersion.v2003,
                                                                                                              ConfigurationManager.AppSettings("MSAccessLocation"), ""))
Public Function GetAll() As List(Of Fund) Implements IFundRepository.GetAll
        Return _conn.Query(Of Fund)("SELECT * FROM Funds").ToList()
End Function

Réponse populaire

Décidé de poster ceci comme une réponse à la place parce que les commentaires ont des options de formatage limitées et une longueur maximum ... Indépendamment du fait que Dapper dispose ou non de la connexion, votre code devrait en disposer dès qu'il n'est pas nécessaire.

Dans ce cas,

Public Function GetAll() As List(Of Fund) Implements IFundRepository.GetAll

    Using conn As IDbConnection = New DbConnection (_connectionString)

        Dim funds As List(Of Fund) = _conn.Query(Of Fund)("SELECT * FROM Funds").ToList()

        Return funds

    End Using

End Function


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi