型のオブジェクトをキャストすることができません「MvcMiniProfiler.Data.EFProfiledDbConnection」「System.Data.SqlClientのを入力します。 SqlConnection '。「System.Data.SqlClient.SqlConnection」を入力するタイプ「MvcMiniProfiler.Data.EFProfiledDbConnection」のオブジェクトをキャストすることができません
MvcMiniProfiler 1.9.0にアップグレードしようとしていますが、MiniProfilerEF.Initialize()を呼び出すと、この問題が発生します。私はsystem.data設定セクションを削除しました。私は何が間違っているのか分からない。私はサイト上の手順に従っているが、多分私は何かを逃した?
私は最初にEFコード4.1を使用しています。私はdatacontextを作成するために、私のconnectionstringの名前をコンストラクタに渡しています。
ウェブアクティベーター
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
IircナゲットにEFサンプルセットアップがあります。しかし、:私は尋ねることができます:あなたはいつもプロファイル接続をしていますか?または、時には(おそらくユーザーに依存して)プロファイル接続を使用し、時には裸のSQL接続を使用しますか? –
@MarcGravell私はこれをバージョン1.7で行いました。私はプロファイル接続(デバッグ)からSQL接続(リリース)に切り替えるだろう。それは正常に働いた。 –