一尘不染

实体框架DbContext执行的日志查询

c#

我在MVC 5项目中将EF 6.0与LINQ一起使用。我想记录由实体框架DbContext执行的所有SQL查询,以进行调试/性能评估。

在Java /
Hibernate中,可以通过设置property来实现等效行为hibernate.show_sql=true。实体框架中是否可能有类似行为?


阅读 501

收藏
2020-05-19

共1个答案

一尘不染

您正在寻找MSDN上的“
记录和拦截数据库操作”一文。

DbContext.Database.Log对于采用字符串的任何方法,可以将该属性设置为委托。最常见的做法是TextWriter将其设置为该TextWriter的“写入”方法,以将其与任何其他对象一起使用。当前上下文生成的所有SQL将记录到该编写器中。例如,以下代码会将SQL记录到控制台:

using (var context = new BlogContext())
{
    context.Database.Log = Console.Write;

    // Your code here...
}
2020-05-19