Entity framework 实体框架执行的精确sql查询

Entity framework 实体框架执行的精确sql查询,entity-framework,Entity Framework,这个问题似乎很清楚,但我要补充一个例子 using (var context = new MyEntities()) { if(context.mytable.Any(row => row.myfield == 2)) { // do something here } } 我不熟悉实体框架。 我不知道如何检查执行的确切sql查询?如果您连接到sql Server,可以使用sql探查器获取生成的sql。您可以在此处找到类似的问题: 总而言之,您的选择是: SQL S

这个问题似乎很清楚,但我要补充一个例子

using (var context = new MyEntities())
{
  if(context.mytable.Any(row => row.myfield == 2))
  {
    // do something here
  }
}
我不熟悉实体框架。
我不知道如何检查执行的确切sql查询?

如果您连接到sql Server,可以使用sql探查器获取生成的sql。

您可以在此处找到类似的问题:

总而言之,您的选择是:

  • SQL Server探查器

有关详细信息,请参见参考问题。

根据上述答案状态,您可以使用SQL Profiler、LINQPad、EF Profiler等

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

只需将查询转换为
ObjectQuery

var query=context.mytable.Any(row=>row.myfield==2));
var trace=((ObjectQuery)query.ToTraceString();
它将吐出要执行的SQL

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

var query = context.mytable.Any(row => row.myfield == 2));
var trace = ((ObjectQuery<MyTable>)query).ToTraceString();