Dapper с MVCMiniProfiler - PullRequest
       19

Dapper с MVCMiniProfiler

6 голосов
/ 07 сентября 2011

Я хочу использовать MVCMiniProfiler с Dapper. Возможно ли это за пределами переноса вызова «Запрос» из dapper в блок «Использование Profiler.Step»?

У меня есть базовый Dapper вызов:

Dim comments As List(Of Comment)
Using conn = New SqlConnection(ConnectionString)
conn.Open()
comments = conn.Query(Of Comment)("SELECT * from comments where userid = @userid",       New With {.userid= 1})
End Using

Примеры MiniProfiler показывают это

Private Shared _sqlConnection As SqlConnection
Public Shared Function GetOpenConnection() As DbConnection
    If _sqlConnection Is Nothing Then
            _sqlConnection = New SqlConnection("connection string")
    End If
    ' wrap the connection with a profiling connection that tracks timings 
    Return MvcMiniProfiler.Data.ProfiledDbConnection.[Get](_sqlConnection, MiniProfiler.Current)
End Function

Я застрял в реализации функции "Get" для ProfiledDbConnection. Можно ли использовать ProfiledDbConnection при использовании Dapper?

1 Ответ

5 голосов
/ 08 сентября 2011

Хороший улов, документация устарела, только что обновил:

Используйте что-то вроде:

return MiniProfiler.Current != null ? 
        new MvcMiniProfiler.Data.ProfiledDbConnection(cnn, MiniProfiler.Current) : 
        cnn;

Я убил фабрику, потому что хотел, чтобы люди могли наследовать ProfiledDbConnection, а статика не может быть виртуализирована.

...