我通过 nuget 在我的项目中安装了 MiniProfiler 和 MiniProfiler.EF。
在使用 MiniProfiler 之前,我会在我的模型存储库中使用它打开一个连接:
public class NotificationRepository
{
private CBNotificationModel.CB_NotificationEntities db;
public NotificationRepository()
{
db = new CB_NotificationEntities();
}
public NotificationContact GetNotificationContacts()
{
return db.NotificationContacts.ToList();
}
}
要使用我创建的迷你分析器:
public static class ConnectionHelper
{
public static CB_NotificationEntities GetEntityConnection()
{
var conn = new StackExchange.Profiling.Data.EFProfiledDbConnection(GetConnection(), MiniProfiler.Current);
return ObjectContextUtils.CreateObjectContext<CB_NotificationEntities>(conn); // resides in the MiniProfiler.EF nuget pack
}
public static EntityConnection GetConnection()
{
return new EntityConnection(ConfigurationManager.ConnectionStrings["CB_NotificationEntities"].ConnectionString);
}
}
模型存储库现在使用
db = ConnectionHelper.GetEntityConnection();
然而,这给出了错误:
mscorlib.dll 中出现“System.StackOverflowException”类型的未处理异常
我错过了一步吗?我尝试在 Application_start() 中添加 MiniProfilerEF.Initialize() 和 MiniProfilerEF.Initialize_EF42() 但这只会改变给出的错误。
似乎没有太多关于设置实体框架项目以使用 miniprofiler 的信息,除非它是 codefirst。