三种方法一种是EF自带的功能只需要配置web.config就可以了
在web.config中增加 interceptors 节点即可.
<configuration>
<entityFramework>
<interceptors>
<interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework">
<parameters>
<parameter value="E:\www\efsql.log" />
<parameter value="true" type="System.Boolean" />
</parameters>
</interceptor>
</interceptors>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
第二种使用 MiniProfiler
第三种使用 代码自己写一个监听器
public JDDbContext() : base("name=JDDbContext")
{
this.Database.Log += c => Console.WriteLine($"sql:{c}");
}
还有其它的很多种方法,不一一列举了.