无法将类型为“MvcMiniProfiler.Data.EFProfiledDbConnection”的对象强制转换为类型“System.Data.SqlClient.SqlConnection”。
我正在尝试升级到MvcMiniProfiler 1.9.0,但每次调用MiniProfilerEF.Initialize()时都会出现这个问题。我已经删除了system.data配置部分,但我不知道我做错了什么。我已经按照网站上的步骤操作,但可能有些遗漏?
我正在使用EF code first 4.1,并将我的连接字符串名称传递给构造函数来创建我的数据上下文。
Web Activator
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();
}
}
}
}
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构造函数:
public ProjectDataContext(string nameOrConnectionString)
: base(nameOrConnectionString) {
Active = new Active(this);
}
根据文档,我已经从配置文件中移除了system.data dataproviders, 因为只需要调用MiniProfilerEF.Initialize()即可。
**更新
之前在1.7版本的MvcMiniProfiler中,我需要设置Database.DefaultConnectionFactory属性,但我已将其移除。Database.DefaultConnectionFactory总是返回SqlConnectionFactory,难道不应该是ProfiledConnectionFactory或类似的东西吗?