在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查询