Mik*_*ike 6 c# entity-framework
我正在运行一个使用Entity Framework 4.0进行数据库交互的C#4.0网站.我想找到导致实体框架对数据库进行最多调用的页面(因为调用越多,页面可能越慢).
我将为实体框架添加某种工具,让实际用户操作网站一段时间,然后分析某种日志以找出生成对数据库的调用最多的页面.
是否有某种性能计数器或其他事件可以检查以确定实体框架何时进行数据库调用?
您可以尝试Entity Framework Profiler(它自己的站点在这里),虽然这不是免费产品,但它有 30 天的免费试用期。它是由周围最聪明的人之一写的
不过,它会标记问题,例如 Select N+1 问题,并警告您不良做法。
从简介中:
Entity Framework Profiler 是一个实时可视化调试器,允许开发团队获得有关实体框架使用情况的宝贵见解和观点。该产品的架构参考了 OR/M 社区中许多顶级行业领导者的意见。警报以简洁的代码审查方式呈现,指示应用程序的误用模式。为了简化您纠正误用的工作,我们提供了触发警报的有问题的代码部分的链接
再次来自简介(回应评论):
使用实体框架分析器很简单。首先,我们需要让我们分析的应用程序了解分析器。然后,启动分析器。
准备要分析的应用程序
添加对 HibernatingRhinos.Profiler.Appender.dll 程序集的引用,该程序集位于可下载的 zip 中。在应用程序启动(Web 应用程序中的 Application_Start、Windows/控制台应用程序中的 Program.Main 或 WPF 应用程序的 App 构造函数)中,进行以下调用:
HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();
Run Code Online (Sandbox Code Playgroud)
编辑
似乎您可以初始化分析器以进行离线分析。使用它来初始化它(从这里):
HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.InitializeOfflineProfiling(filename);
Run Code Online (Sandbox Code Playgroud)
然后将生成的文件加载到分析器中。
这似乎应该给你你想要的。