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
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow