我正在使用Entity Framework Code First,我希望能够记录DbContext生成的所有SQL查询。在Linq to sql中有一个DB日志,我似乎无法在EF中找到它。然后我可以将它们放在日志中或输出到页面。
我正在使用EntityFramework Assembly的4.1.0.0版本。
答案 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变得比以往任何时候都重要,它应该是用于此类情况的主要工具,如果在我们实际编写查询时这很重要,那么现在更重要的是这些工具为我们构建查询,它不仅是调试的必需品,也是优化的必备工具