- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
无法将“MvcMiniProfiler.Data.EFProfiledDbConnection”类型的对象转换为类型“System.Data.SqlClient.SqlConnection”。
我正在尝试升级到 MvcMiniProfiler 1.9.0,并且在我调用 MiniProfilerEF.Initialize() 时不断收到此消息。我已经删除了 system.data 配置部分。我不知道我做错了什么。我已按照网站上的步骤操作,但也许我错过了什么?
我首先使用 EF 代码 4.1,并将我的连接字符串的名称传递给构造函数以创建我的数据上下文。
网络激活器
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();
}
}
}
}
结构图注册表:
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));
}
}
}
数据上下文构造函数:
public ProjectDataContext(string nameOrConnectionString)
: base(nameOrConnectionString) {
Active = new Active(this);
}
我已经从我的配置中删除了 system.data 数据提供者,因为文档说我只需要调用 MiniProfilerEF.Initialize()。
**更新
以前在 1.7 MvcMiniProfiler 中我必须设置 Database.DefaultConnectionFactory 属性,但我已经删除了它。 Database.DefaultConnectionFactory 总是作为 SqlConnectionFactory 返回,它不应该是 ProfiledConnectionFactory 或类似的东西吗?
最佳答案
我看到了同样的错误。这让我抓狂,但我终于想通了。我的问题与 web.config
、程序集、Initialize_42
或 Initialize(false)
hack 或任何东西无关。
这是我出错的地方......
我启用了这样的自动迁移应用程序:
应用程序启动:
Database.SetInitializer(
new MigrateDatabaseToLatestVersion<DataContext, Migrations.Configuration>()
);
迁移/配置.cs:
internal sealed class Configuration
: DbMigrationsConfiguration<Path.To.DataContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
}
这是通过 WebActivator 触发的,如下所示:
[assembly: WebActivator.PreApplicationStartMethod(
typeof(service_tracker_mvc.App_Start.DatabaseInitializer), "Start")]
我无意中发现禁用此进程会导致探查器正常工作。碰巧的是,这个 init 进程发生的时间太早了。它通常发生在 Application_Start
期间(如果您没有使用这种奇特的 WebActivator 东西)所以我将其更改为 PostStart
。现在可以了:
▼▼▼▼
[assembly: WebActivator.PostApplicationStartMethod(
typeof(service_tracker_mvc.App_Start.DatabaseInitializer), "Start")]
关于c# - 无法将类型为 'MvcMiniProfiler.Data.EFProfiledDbConnection' 的对象转换为类型 'System.Data.SqlClient.SqlConnection',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8669568/
我正在尝试将 MvcMiniProfiler 集成到我的 asp.net mvc+entity framewok 项目中。第一次网络请求一切正常,但在其他请求中出现异常。 我的项目是 MVC 3 En
无法将“MvcMiniProfiler.Data.EFProfiledDbConnection”类型的对象转换为类型“System.Data.SqlClient.SqlConnection”。 我正在
我是一名优秀的程序员,十分优秀!