為什麼Dapper不需要打開連接?

.net dapper

Dapper文檔聲明它需要打開連接 。然而,在Steve Michelotti的複數課程中,他沒有在執行SQL之前打開連接,我發現我自己的連接到SQL Server和MS Access的測試證實了這一點。

手動控制連接是最佳做法還是將其留給Dapper?是否存在Dapper絕對要求提供打開的連接的情況?

這是我正在對Access數據庫執行的代碼示例。在任何時候我都不打開連接,但是Dapper很樂意返回一組Fund對象:

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

熱門答案

決定將此作為答案發布,因為評論具有有限的格式選項和最大長度...我第二個TimSchmelter的建議,“不要創建連接作為字段而是作為局部變量。”無論dapper是否處理連接,您的代碼都應該在不需要時立即處理它。

在這種情況下,

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


許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因