No se puede convertir objeto de tipo 'MvcMiniProfiler.Data.EFProfiledDbConnection' al tipo 'System.Data.SqlClient. SqlConnection '.No se puede convertir objeto de tipo 'MvcMiniProfiler.Data.EFProfiledDbConnection' al tipo 'System.Data.SqlClient.SqlConnection'
Estoy tratando de actualizar a MvcMiniProfiler 1.9.0 y sigo obteniendo esto cuando llamo a MiniProfilerEF.Initialize(). He eliminado la sección de configuración de system.data. No sé lo que estoy haciendo mal. He seguido los pasos en el sitio, pero tal vez me perdí algo?
Estoy utilizando el código EF primero 4.1 y estoy pasando el nombre de mi conexión en un constructor para crear mi datacontext.
Activador Web
using Project.Web.App_Start;
using WebActivator;
[assembly: PreApplicationStartMethod(typeof(MiniProfiler), "Start")]
namespace Project.Web.App_Start {
public class MiniProfiler {
public static void Start()
{
if (Eco.Environment.IsDevelopment) {
MiniProfilerEF.Initialize();
}
}
}
}
Registro StructureMap:
using Project.Domain.Repositories;
using StructureMap.Configuration.DSL;
namespace Project.Web.DependencyResolution.Registries {
public class RepositoriesRegistry : Registry {
public RepositoriesRegistry() {
For<IProjectDataContext>().HybridHttpOrThreadLocalScoped().Use(() => new ProjectDataContext(Eco.Database.Name));
}
}
}
DataContext Constructor:
public ProjectDataContext(string nameOrConnectionString)
: base(nameOrConnectionString) {
Active = new Active(this);
}
He quitado dataproviders System.Data Fron mi config ya que la documentación dice que sólo necesito para llamar a MiniProfilerEF.Initialize().
** Actualización
Anteriormente en 1.7 MvcMiniProfiler que tenía que establecer la propiedad Database.DefaultConnectionFactory, pero he eliminado eso. La Database.DefaultConnectionFactory siempre vuelve como SqlConnectionFactory, ¿no debería ser ProfiledConnectionFactory o algo así?
¿Puede proporcionar un archivo de código + configuración? Normalmente, define la cadena de conexión en el archivo de configuración del mismo nombre que su clase DBContext, y nunca necesita usar un constructor no predeterminado. – Tejs
Iirc hay una configuración de muestra EF en nuget. Pero, ¿puedo preguntar: siempre le das una conexión perfilada? ¿O a veces (quizás dependiendo del usuario) utiliza una conexión de perfiles, y a veces usa una conexión de SQL desnudo? –
@MarcGravell Hice esto con la versión 1.7. Cambiaría de una conexión perfilada (Debug) a una conexión sql en (Release). Funcionó bien –