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.
精彩评论