EFCodeFirstでmvc-mini-profilerを使用しようとしています。DbProfiledConnectionを作成し、以下のように構築時にDbContextに渡します。アプリケーションは、SQLがプロファイラーに公開されていないため、期待どおりに動作し続けます。
public class WebContext : DbContext
{
static DbConnection _connection = new SqlConnection(ConfigurationManager.ConnectionStrings["WebContext"].ConnectionString);
static DbConnection _profiledConnection = MvcMiniProfiler.Data.ProfiledDbConnection.Get(_connection);
public WebContext()
: base(_profiledConnection, true)
{
}
おっと私の悪い。
WebContextがUnitOfWorkで構築されるときに、ProfiledDbConnectionを渡すように変更しました。
public UnitOfWork()
{
var profiledConnection = MvcMiniProfiler.Data.ProfiledDbConnection.Get(connection);
this.context = new MyContext(profiledConnection);
}
チェックしたところ、MiniProfier CurrentがApplication_BeginRequestに設定されており、データベースにクエリを実行しようとするとProfiledDbConnectionが返され、ProfiledDbProviderServicesクラスでエラーがスローされます。
protected override string GetDbProviderManifestToken(DbConnection connection)
{
return tail.GetProviderManifestToken(connection);
}
このメソッドは、「プロバイダーがProviderManifestToken文字列を返しませんでした」を返します。エラー