There was a question on MS’ forum about how to log the DLinq’s sql commands. Well, actually DataContext’s sql commands. Here is the solution, it is easy:
StringBuilder sb = new StringBuilder(); // create a StringBuilder instance to store output
TextWriter tw = new StringWriter(sb); // create a StringWriter that will write into StringBuilder above
db.Log = tw; // attach it to DataContext
Console.WriteLine(sb.ToString()); // output the result
The trick is to use DataContext.Log property (db represents DataContext instance in this example) to attach a valid TextWritter derived instance. And voila – no more black box. Of course, output will be empty unless there is a sql command issued either by doing query or persistence.