EF Core中SQL跟踪期间丢失的参数值

问题描述 投票:21回答:1

我根据这篇文章实现了一种从EF Core跟踪SQL查询的方法:https://docs.microsoft.com/en-us/ef/core/miscellaneous/logging。并且跟踪查询参数有问题。当我在DbParameterLogData的所有值中记录Log事件时,我只看到问号,而不是我传递给查询的实际值。

enter image description here

我正在使用VS 2015.谢谢!

c# entity-framework .net-core entity-framework-core
1个回答
47
投票

这是EF Core的默认行为(用DbParameterLogData.Value填充"?"属性)。

为了获得真实的参数值,您需要使用DbContextOptionsBuilder.EnableSensitiveDataLogging方法启用敏感数据记录:

允许应用程序数据包含在异常消息,日志记录等中。这可以包括分配给实体实例的属性的值,发送到数据库的命令的参数值以及其他此类数据。如果您根据此数据的敏感度采取了适当的安全措施,则只应启用此标志。

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.EnableSensitiveDataLogging();
    // ...
}
© www.soinside.com 2019 - 2024. All rights reserved.