当前位置: 首页 > 编程语言 > C#

MvcMiniProfiler无法转换EFProfiledDbConnection类型的对象分享

时间:2023-04-10 17:02:05 C#

MvcMiniProfiler无法转换EFProfiledDbConnection类型的对象在第一个Web请求上一切正常,但在其他请求上出现异常。我的项目是MVC3entityframework4.1(DatabaseFirst+POCOGeneratorDbContext)MvcMiniProfiler.dll1.9.0.0MvcMiniProfiler.EntityFramework.dll1.9.1.0我从Nu-Get安装了MvcMiniProfiler在下面添加到global.asaxprotectedvoidApplication_BeginRequest(){if(Request.IsLocal){MvcMiniProfiler.MiniProfiler.Start();MiniProfilerEF.Initialize();在下面添加到web.config我得到了这个异常System.InvalidCastException未被用户代码处理Message=Unabletocastobjectoftype'MvcMiniProfiler.Data.EFProfiledDbConnection'totype'System.Data.SqlClient.SqlConnection'。Source=System.DataStackTrace:在System.Data.SqlClient.SqlCommand.set_DbConnection(DbConnection值)在System.Data.Common.DbCommand。在MvcMiniProfiler.Data.ProfiledDbCommand.set_Connection(DbConnection值)在C:UserssamDesktopmvc-mini-profilerMvcMiniProfilerDataProfiledDbCommand.cs中设置_DbConnection(DbConnection值):System.Data.Common.DbCommand.set_Connection(DbConnectionval处的第118行ue)在System.Data.Common.Utils.CommandHelper.SetStoreProviderCommandState(EntityCommandentityCommand,EntityTransactionentityTransaction,DbCommandstoreProviderCommand)在System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommandentityCommand,CommandBehavior.SystemnalDataObject)在ObjectQueryType[Tlan.ResultExecution]ObjectContext上下文,ObjectParameterCollectionparameterValues)EF调用ModaEntitiesWrapper.GetInstance().Articles.AsNoTracking().Where(p=>p.StatusId==1).ToList();发生异常;如果我将Web.Config中的MvcMiniProfiler.Data.ProfiledDbProvider版本从1.8.0.0更改为1.9.0.0MiniProfilerEF.Initialize()调用中出现新异常System.IndexOutOfRangeException未被用户代码处理Message=ThegivenDataRowisnotinthecurrentDataRowCollection.Source=System.DataStackTrace:atSystem.Data.DataRowCollection.Remove(DataRowrow)atMvcMiniProfiler.MiniProfilerEF.Initialize()也许这会有所帮助。移动MiniProfilerEF.Initialize();到Application_Start()方法的顶部。请注意,在EF4.1及更高版本中,调用的方法应为MiniProfilerEF.Initialize_EF42();反而。protectedvoidApplication_Start(){Logger.Info("应用程序启动");MiniProfilerEF.Initialize_EF42();//...}请参阅http://code.google.com/p/mvc-mini-profiler/以下是在EF数据库中使用mvc-mini-profiler的示例首先:publicstaticclassEntities{publicstaticMyEntitiesCreate(){varbuilder=newEntityConnectionStringBuilder(ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString);varsqlConnection=newSqlConnection(builder.ProviderConnectionString);varprofiledConnection=newEFProfiledDbConnection(sqlConnection,MiniProfiler.Current);返回profiledConnection.CreateObjectContext();然后,您可以使用此方法向IOC容器注册您的实体,或使用类似using(varentities=Entities.Create()){//Dostuffhereentities.SaveChanges();编辑:忘记添加MiniProfilerEF.Initialize();这仅适用于EFCodeFirst。以上就是C#学习教程:MvcMiniProfiler无法转换EFProfiledDbConnection类型对象的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: