無法強制類型爲'MvcMiniProfiler.Data.EFProfiledDbConnection'的對象類型爲'System.Data.SqlClient。 SqlConnection的」。無法強制類型爲'MvcMiniProfiler.Data.EFProfiledDbConnection'的對象類型爲'System.Data.SqlClient.SqlConnection'
我想升級到MvcMiniProfiler 1.9.0,當我打電話給MiniProfilerEF.Initialize()時,我不斷收到。我已經刪除了system.data配置部分。我不知道我做錯了什麼。我已經按照網站上的步驟,但也許我錯過了什麼?
我使用EF代碼第4.1和我路過我的ConnectionString的名字變成一個構造函數來創建我的DataContext。
網絡激活
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的dataProvider弗朗我的配置,因爲文件說,我只需要調用MiniProfilerEF.Initialize()。
**更新
以前在1.7 MvcMiniProfiler我不得不設置Database.DefaultConnectionFactory屬性,但我已刪除了。 Database.DefaultConnectionFactory總是作爲SqlConnectionFactory返回,不應該是ProfiledConnectionFactory或類似的東西?
你能提供代碼+配置文件嗎?通常,您在與您的DBContext類相同的名稱的配置文件中定義連接字符串,並且您永遠不需要使用非默認構造函數。 – Tejs 2011-12-29 15:34:37
Iirc在nuget上有一個EF樣本設置。但是:我可以問:你總是給它一個異形連接?或者你有時(可能取決於用戶)使用配置文件連接,有時使用裸SQL連接? – 2011-12-29 15:34:54
@MarcGravell我在1.7版本中做了這個。我將從配置文件連接(Debug)切換到(Release)中的sql連接。它運行良好。 – 2011-12-29 16:28:52