首先使用EF代码跟踪SQL查询

问题描述

| 我正在使用Entity Framework Code First,并且希望能够记录DbContext生成的所有SQL查询。在Linq to sql中,有一个数据库日志,我似乎在EF中找不到它。然后,我可以将它们放在日志中或将其输出页面。 我正在使用EntityFramework Assembly的版本4.1.0.0。     

解决方法

        最好的选择是使用Entity Framework Profiler,尽管不幸的是它不是免费的。 您还可以通过在
IQueryable
本身上运行
ToString()
来手动获取它将生成的SQL,但这必须在每个查询的基础上完成。 最后一种选择是,如果您使用MS Sql Server作为后端,则可以加载Sql Server Profiler(我相信是Sql Server Management Studio附带的)并从那里记录sql语句。     ,        Miniprofiler是实体框架探查器的免费替代品,它将允许您跟踪Web请求期间进行的所有sql查询     ,        借助EF之类的工具,使用SQL Server Profiler变得比以往任何时候都更加重要,并且它应该成为处理这种情况的主要工具,如果在我们实际编写查询时很重要,那么这些工具现在变得尤为重要。为我们建立查询,不仅必须进行调试,而且还必须进行优化