Dapper с MVCMiniProfiler
Я хочу использовать 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 ответ
Решение
Хороший улов, документация устарела, просто обновил ее:
Используйте что-то вроде:
return MiniProfiler.Current != null ?
new MvcMiniProfiler.Data.ProfiledDbConnection(cnn, MiniProfiler.Current) :
cnn;
Я убил фабрику, потому что хотел, чтобы люди могли наследовать ProfiledDbConnection, а статика не может быть виртуализирована.