【问题标题】:Viewing Entity SQL produced by Linq-to-Entities查看 Linq-to-Entities 生成的实体 SQL
【发布时间】:2011-07-07 12:12:36
【问题描述】:

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

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      var query1 = from person in Database
                 select person.Name;
      

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

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

      【讨论】:

        【解决方案3】:

        查看开发环境中的LINQ查询。

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多