代码之家  ›  专栏  ›  技术社区  ›  Peter

将从LINQ生成的SQL可视化为实体

  •  4
  • Peter  · 技术社区  · 15 年前

    我正在寻找一种方法来查看我的L2E代码为调试而生成的SQL是什么。 我读过 blogpost by Scott G. on a visualizer for Linq2SQL 但我不能让它为L2E工作。

    您知道如何可视化L2e生成的SQL吗?

    我正在使用Visual Studio 2008 SP1专业版。

    2 回复  |  直到 15 年前
        1
  •  7
  •   Tion    15 年前

    类objectQuery具有totraceString()函数。但是,您在LINQ中编写的大多数查询都是作为iQueryable创建的,因此您首先必须将它们强制转换为ObjectQuery才能使用它。

    或者,如果您定义了这个扩展方法,您可以将它与iq一起使用。

    public static string ToTraceString<T>(this IQueryable<T> expression)
            {                
    
                ObjectQuery<T> objectQuery = expression as ObjectQuery<T>;    
                if (objectQuery != null)
                {
                    return objectQuery.ToTraceString();
                }
                return "";
    
            }
    

    //then you could use it like this
    IQueryable<Record> records = db.Record.Where(r=>r.Value > x);
    
    string generatedQuery = record.ToTraceString();
    
        2
  •  1
  •   emipasat    15 年前

    尝试SQL Server配置文件(如果已安装SQL Server)。 打开一个新的跟踪窗口,您将看到针对SQL Server发出的所有查询。