0

我有 SqlServerQueryVisualizer。当我将鼠标悬停在“accounts”变量上时,我可以看到 SQL。但是当我将鼠标悬停在“结果”变量上时,它没有显示 SQL 查询。如何在以下代码中查看“结果”变量的 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;
    }

在此处输入图像描述

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

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

2 回答 2

1

不是 100% 确定这种缺乏悬停工作是由泛型引起的还是什么(它似乎已经解决了您提供的屏幕截图中的泛型),但您始终可以使用 DataContext.Log 属性将 SQL 捕获给读者. 我知道这不太方便,但它可能比悬停时更具可读性。

于 2012-06-22T14:49:23.683 回答
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; }
    }
}
于 2012-06-26T06:31:03.707 回答