exact sql query executed by Entity Framework

后端 未结 3 1385
忘掉有多难
忘掉有多难 2021-01-23 05:25

the question seems clear enough, but I\'ll add a case

using (var context = new MyEntities())
{
  if(context.mytable.Any(row => row.myfield == 2))
  {
    // d         


        
相关标签:
3条回答
  • 2021-01-23 05:47

    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.

    0 讨论(0)
  • 2021-01-23 06:00

    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.

    0 讨论(0)
  • 2021-01-23 06:01

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

    0 讨论(0)
提交回复
热议问题