实体框架执行的确切sql查询

Anw*_*dra 2 entity-framework

问题似乎很清楚,但我会添加一个案例

using (var context = new MyEntities())
{
  if(context.mytable.Any(row => row.myfield == 2))
  {
    // do something here
  }
}
Run Code Online (Sandbox Code Playgroud)

我是Entity Framework的新手.我不知道如何检查确切的sql查询执行?

RPM*_*984 8

如上面的答案所述,您可以使用SQL Profiler,LINQPad,EF Profiler等.

另一个鲜为人知的(有些人可能会说懒惰)技巧是使用ObjectQuery.ToTraceString()扩展方法.

只需将您的查询转换为ObjectQuery<T>.

var query = context.mytable.Any(row => row.myfield == 2));
var trace = ((ObjectQuery<MyTable>)query).ToTraceString();
Run Code Online (Sandbox Code Playgroud)

它将吐出要执行的SQL.

最后一分钟的日志记录非常方便.