在EF Code First中跟踪SQL查询

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

我正在使用EntityFramework Assembly的4.1.0.0版。

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

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

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

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

Miniprofiler是entity framework分析器的一个免费替代品,它允许您跟踪Web请求期间发出的所有SQL查询