在EF Code First中跟踪SQL查询

时间:2011-05-29 15:28:06

标签: c# sql asp.net-mvc entity-framework

我正在使用Entity Framework Code First,我希望能够记录DbContext生成的所有SQL查询。在Linq to sql中有一个DB日志,我似乎无法在EF中找到它。然后我可以将它们放在日志中或输出到页面。

我正在使用EntityFramework Assembly的4.1.0.0版本。

3 个答案:

答案 0 :(得分:6)

您最好的选择是使用Entity Framework Profiler,但遗憾的是它不是免费的。

您也可以通过在ToString()上运行IQueryable来手动获取它将生成的SQL,但这必须在每个查询的基础上完成。

最后一个选项是,如果您使用MS Sql Server作为后端,您可以加载Sql Server Profiler(我相信Sql Server Management Studio附带)并从那里记录sql语句。

答案 1 :(得分:1)

Miniprofiler实体框架分析器的免费替代方案,允许您跟踪Web请求期间发出的所有SQL查询

答案 2 :(得分:0)

使用像EF这样的工具,使用SQL Server Profiler变得比以往任何时候都重要,它应该是用于此类情况的主要工具,如果在我们实际编写查询时这很重要,那么现在更重要的是这些工具为我们构建查询,它不仅是调试的必需品,也是优化的必备工具