Перенаправление SQL-запросов, сгенерированных LINQ, в debug output
Иногда полезно узнать, в какие именно SQL-запросы транслируются LINQ-запросы. Один из вариантов — перенаправление вывода в debug output в Visual Studio.
Для начала нам понадобится вот такой класс:
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Diagnostics;
using System.Text;
namespace CrispStudio.Logging
{
public class DebugTextWriter : TextWriter
{
public override void Write(char[] buffer, int index, int count)
{
Debug.Write(new String(buffer, index, count));
}
public override void Write(string value)
{
Debug.Write(value);
}
public override Encoding Encoding
{
get { return System.Text.Encoding.Default; }
}
}
}
Затем, используем его при создании DataContext'a:
MyDataContext context = new MyDataContext(); #if DEBUG context.Log = new DebugTextWriter(); #endif
