查看Linq-to-Entities生成的实体SQL

时间:2011-03-02 18:37:43

标签: c# entity-framework-4 linq-to-entities entity-sql

有没有办法可以查看我的Linq-to-entities查询使用EF框架生成的Entity Sql(eSQL)(即,不是本机SQL,而是eSQL,如果这有意义的话?)

谢谢!

3 个答案:

答案 0 :(得分:7)

你做不到。它没有生成 实际上,LINQ to Entities查询直接转换为表达式树,并且此表达式树的节点被转换为SQL子句,然后集成到SQL查询中。没有实体SQL。

答案 1 :(得分:1)

var query1 = from person in Database
           select person.Name;

您可以将query1强制转换为ObjectQuery,并使用ToTraceString方法查看查询。

Console.WriteLine(((ObjectQuery)query1).ToTraceString());

答案 2 :(得分:0)

在开发环境中查看linq查询。

  1. 您可以在IQueryable变量中分配查询。
  2. 在下一行中查询查询下方的调试点。所以,查询得到执行。
  3. 将鼠标放在IQueryable变量上。您将能够看到SQL查询。
  4. 您可以在SQL查询分析器中复制sql查询并执行它。
  5. 查看图片中的示例 http://i.stack.imgur.com/t6PK6.png