各リポジトリ クラスでこのコードを使用すると、SQL プロファイリングが機能しますが、そのコードを各クラスから StructureMap が DB を処理するクラスに移動したいと考えています。
リポジトリ クラスの例:
public DB CreateNewContext()
{
var sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString);
var profiledConnection = ProfiledDbConnection.Get(sqlConnection);
return DataContextUtils.CreateDataContext<DB>(profiledConnection);
}
public SqlRecipeRepository(DB dataContext)
{
_db = CreateNewContext();
}
ここで、dataContext 変数をプロファイル バージョンにしたいので、DBServiceRegistry クラスから取得します。
DBServiceRegistry クラスは次のとおりです。
public class DBServiceRegistry : Registry
{
public DBServiceRegistry()
{
var sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["GetMeCooking.Data.Properties.Settings.server"].ConnectionString);
var profiledConnection = ProfiledDbConnection.Get(sqlConnection);
For<DB>().HybridHttpOrThreadLocalScoped().Use(() => DataContextUtils.CreateDataContext<DB>(profiledConnection));
//Original method just had this:
//For<DB>().HybridHttpOrThreadLocalScoped().Use(() => new DB());
}
}
このコードはエラーを引き起こしませんが、SQL プロファイリングを取得できません。何が間違っていますか?