Solo necesita una clase para actuar como un TextWriter que LINQ to SQL necesita para enviarlo a través del método que desee, p. Ej.
db.Log = new ActionTextWriter(s => logger.Debug(s));
Aquí es un poco de escritor de texto que escribí que se lleva a un delegado y despachos a que por lo que utilizar el código de seguridad. Es probable que desee cambiar esta clase, por lo que tomó un registrador, hizo algo de procesamiento/división en el texto y luego lo envió a NLog.
class ActionTextWriter : TextWriter {
private Action<string> action;
public ActionTextWriter(Action<string> action) {
this.action = action;
}
public override void Write(char[] buffer, int index, int count) {
Write(new string(buffer, index, count));
}
public override void Write(string value) {
action.Invoke(value);
}
public override Encoding Encoding {
get { return System.Text.Encoding.Default; }
}
}
Impresionante, gracias :) – Jedidja