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 に答える