Sql Server Query Visualizer - 无法看到生成的SQL Query

时间:2012-06-22 12:26:09

标签: c# sql-server linq linq-to-sql

我有SqlServerQueryVisualizer。当我将鼠标悬停在“accounts”变量上时,我可以看到SQL。但是,当我将鼠标悬停在“结果”变量上时,它不会显示SQL查询。如何在以下代码中查看“results”变量的SQL查询?

    public IEnumerable<T> FindAll(Func<T, bool> predicate)
    {

        LibraryManagementClassesDataContext db = new LibraryManagementClassesDataContext("");
        var accounts = from p in db.Accounts
                       where p.AccountNumber == 1
                       select p;

        //Where
        var results = Context.GetTable<T>().Where(predicate);
        return results;
    }

enter image description here

另外,我有一个插入功能。如何查看此方案的生成查询?

    public virtual void InsertOnSubmit(T entity)
    {
        GetTable().InsertOnSubmit(entity);
    }

2 个答案:

答案 0 :(得分:1)

不是100%确定悬停工作的缺乏是由于泛型还是什么(它似乎解决了你给出的截图中的泛型),但是你总是可以use the DataContext.Log property来捕获SQL到一位读者。我知道它不那么方便,但它可能比悬停时更具可读性。

答案 1 :(得分:0)

问题中陈述的问题仍然存在。

目前我正在使用以下类在输出窗口中查看结果。

context.Log = new OutputWindowWriter();

class OutputWindowWriter : System.IO.TextWriter
{
    public override void Write(char[] buffer, int index, int count)
    {
        System.Diagnostics.Debug.Write(new String(buffer, index, count));
    }

    public override void Write(string value)
    {
        System.Diagnostics.Debug.Write(value);
    }

    public override System.Text.Encoding Encoding
    {
        get { return System.Text.Encoding.Default; }
    }
}