我已根据本文实现了一种从EF Core跟踪SQL查询的方法:https://docs.microsoft.com/en-us/ef/core/miscellaneous/logging。并且跟踪查询参数有问题。当我在DbParameterLogData的所有值中记录Log事件时,我只看到问号,而不是我传递给查询的实际值。
我正在使用VS 2015.谢谢!
答案 0 :(得分:44)
这是EF Core的默认行为(用"?"
填充DbParameterLogData.Value
属性)。
为了获得真实的参数值,您需要使用DbContextOptionsBuilder.EnableSensitiveDataLogging
方法启用敏感数据记录:
允许应用程序数据包含在异常消息,日志记录等中。这可以包括分配给实体实例属性的值,发送到数据库的命令的参数值,以及其他此类数据。如果您根据此数据的敏感度采取了适当的安全措施,则只应启用此标志。
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.EnableSensitiveDataLogging();
// ...
}