Tengo un proyecto asp.net que usa mvc-mini-profiler. Estaba usando la versión 1.7 del paquete NuGet y noté que hay un paquete actualizado cuya versión es 1.9. Actualicé el paquete y ahora mi código ya no se compila. El código que falla al compilar es:Actualización del miniperfil de 1.7 a 1.9 rompe el código existente
public static T GetProfiledContext<T>() where T : System.Data.Objects.ObjectContext
{
var conn = GetStoreConnection<T>();
if (_enableProfiling)
{
conn = ProfiledDbConnection.Get(conn);
}
return ObjectContextUtils.CreateObjectContext<T>(conn);
}
La compilación errores cuenta de los siguientes asuntos:
- 'MvcMiniProfiler.Data.ProfiledDbConnection' no contiene una definición para 'Get'.
- El nombre 'ObjectContextUtils' no existe en el contexto actual.
me di cuenta de que puedo crear una instancia de ProfiledDbConnection y pasarlo la conexión y un objeto de tipo IDbProfiler, pero no estoy seguro de cómo debería obtener ese objeto.
En cuanto a ObjectContextUtils, no tengo ni idea de lo que se supone que debo usar.
¿Cómo puedo solucionar estos problemas?
Actualización:
Siguiendo las recomendaciones de @ monkeychatter, me las arreglé para construir el código. Ahora recibe la siguiente excepción en tiempo de ejecución:
Un nulo fue devuelto después de llamar al método 'get_ProviderFactory' en una instancia de proveedor de almacén del tipo 'MvcMiniProfiler.Data.ProfiledDbConnection'. Es posible que el proveedor de la tienda no esté funcionando correctamente.
Mediante la inspección de ProfiledDbConnection en ILSpy, me di cuenta de que ya no anula la DbProviderFactory. Esa parece ser la causa del error, ya que la implementación base devuelve nulo. ¿Alguien ha podido solucionar este problema?
No puedo encontrar un método CreateObjectContext en ProfiledDbConnection. ¿Estás seguro de que el código anterior es correcto? –
Buen punto, gracias. Olvidé mencionar que proviene de un paquete add-on nuget MiniProfiler.EF que incluye el ensamblado MvcMiniProfiler.EntityFramework. Respuesta editada para reflejar eso. – tonysurma
Gracias, eso ayudó. Sin embargo, todavía tengo problemas. He actualizado mi pregunta con más información. –