开发者

exact sql query executed by Entity Framework

the question seems clear enough, but I'll add a cas开发者_如何转开发e

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

I am new to Entity Framework. I don't know how to check the exact sql query executed?


As the above answers state, you can use SQL Profiler, LINQPad, EF Profiler, etc.

Another little known (some might say lazy) trick is to use ObjectQuery.ToTraceString() extension method.

Just cast your query as ObjectQuery<T>.

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

It will spit out the SQL that is to be executed.

Very handy for last-minute logging.


You can find a similar question here: How to view generated SQL from Entity Framework?

To sum up, your choices are:

  • LINQPad
  • SQL Server Profiler
  • Entity Framework Profiler

See the referenced question for details.


If you are connecting to SQL Server, you can use the SQL Profiler in order to obtain the SQL that is generated.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜