web-dev-qa-db-fra.com

Valeur de paramètre perdue lors du suivi SQL dans EF Core

J'ai mis en œuvre une approche pour le suivi des requêtes SQL à partir d'EF Core conformément à cet article: https://docs.Microsoft.com/en-us/ef/core/miscivers/logging . Et rencontrez des problèmes avec le traçage des paramètres de requête. Lorsque je reçois un événement Log dans toutes les valeurs de DbParameterLogData, je ne vois que le point d'interrogation au lieu des valeurs réelles que j'ai transmises à la requête.

enter image description here

J'utilise VS 2015. Merci!

24
asat

Il s'agit du comportement par défaut d'EF Core (remplir le DbParameterLogData.Value propriété avec "?").

Pour obtenir les valeurs réelles des paramètres, vous devez activer enregistrement des données sensibles en utilisant DbContextOptionsBuilder.EnableSensitiveDataLogging méthode:

Permet aux données d'application d'être incluses dans les messages d'exception, la journalisation, etc. Cela peut inclure les valeurs affectées aux propriétés de vos instances d'entité, les valeurs des paramètres pour les commandes envoyées à la base de données , et d'autres données de ce type. Vous ne devez activer cet indicateur que si vous disposez des mesures de sécurité appropriées en fonction de la sensibilité de ces données.

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