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

时间:2017-05-26 13:09:28

标签: c# entity-framework .net-core entity-framework-core

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

enter image description here

我正在使用VS 2015.谢谢!

1 个答案:

答案 0 :(得分:44)

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

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

  

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

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.EnableSensitiveDataLogging();
    // ...
}