我在 wpf 应用程序中为一组表单使用数据上下文对象,并将一些控件绑定到表的某些子表。我想跟踪数据上下文何时访问数据库。实现这一目标的最简单方法是什么?
问问题
109 次
1 回答
5
使用DataContext.Log
属性:
db.Log = Console.Out;
你db
的DataContext
. 如果您构造 的多个实例,请在构造函数内部DataContext
设置,以便它们都被正确记录。Log
DataContext
您可以使用此技术将日志记录到文件、内存或调试窗口,如本教程中所示。如果您定义了一个自定义TextWriter
派生,您可以在访问数据库时输出当前DateTime.Now
以及相关的 SQL 语句。
您的扩展TextWriter
可能看起来像这样:
class LoggingTextWriter : TextWriter
{
private const string LogFilePath = @"C:\your_log_file.txt";
public override void Write(char[] buffer, int index, int count)
{
Write(new String(buffer, index, count));
}
public override void Write(string value)
{
File.AppendAllText(LogFilePath, DateTime.Now + value);
}
public override Encoding Encoding
{
get { return Encoding.Default; }
}
}
和
db.Log = new LoggingTextWriter();
于 2012-09-04T00:22:27.790 回答