我有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;
}
另外,我有一个插入功能。如何查看此方案的生成查询?
public virtual void InsertOnSubmit(T entity)
{
GetTable().InsertOnSubmit(entity);
}
答案 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; }
}
}