6

有没有一种方法可以查看我的 Linq-to-entities 查询使用 EF 框架生成的实体 Sql (eSQL)(也就是说,不是本机 SQL,而是 eSQL,如果有意义的话?)

谢谢!

4

3 回答 3

8

你不能。它不是生成的。
实际上,LINQ to Entities 查询是直接翻译成Expression Tree 的,这个Expression Tree 的节点被翻译成SQL 子句,然后整合成一个SQL 查询。没有实体 SQL。

于 2011-03-03T11:18:04.520 回答
1
var query1 = from person in Database
           select person.Name;

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

Console.WriteLine(((ObjectQuery)query1).ToTraceString());
于 2011-03-03T12:39:48.807 回答
0

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

  1. 您在 IQueryable 变量中分配您的查询。
  2. 将调试点放在下一行的查询下方。因此,Query 被执行。
  3. 将鼠标放在 IQueryable 变量上。您将能够看到 SQL 查询。
  4. 您可以在 SQL 查询分析器中复制您的 sql 查询并执行它。

在图片中查看示例 http://i.stack.imgur.com/t6PK6.png

于 2013-08-26T07:00:51.553 回答