この記事に従って、EF CoreからSQLクエリをトレースするアプローチを実装しました: https://docs.Microsoft.com/en-us/ef/core/miscellaneous/logging 。また、クエリパラメータのトレースに問題があります。 DbParameterLogDataのすべての値でLogイベントを受け取ると、クエリに渡した実際の値の代わりに疑問符だけが表示されます。
私はVS 2015を使用しています。ありがとうございます!
これはEF Coreのデフォルトの動作です( DbParameterLogData.Value
プロパティに"?"
を入力)。
実際のパラメーター値を取得するには、 DbContextOptionsBuilder.EnableSensitiveDataLogging
メソッドを使用してsensitive data loggingを有効にする必要があります。
アプリケーションデータを例外メッセージ、ロギングなどに含めることができます。これには、エンティティインスタンスのプロパティに割り当てられた値、データベースに送信されるコマンドのパラメーター値を含めることができます、およびその他のそのようなデータ。このデータの機密性に基づいて適切なセキュリティ対策を実施している場合にのみ、このフラグを有効にしてください。
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.EnableSensitiveDataLogging();
// ...
}