Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 55374|Répondre: 2

[Source] EF Core Série 4 examine les instructions SQL générées

[Copié le lien]
Publié sur 19/02/2021 13:36:34 | | | |
EF Core Series 2 encapsule OnModelCreating, crée des index à l’aide de réflexions, et plus encore
https://www.itsvse.com/thread-9392-1-1.html

Attributs d’ombre d’image d’entité de la série EF Core (3) [Réimpression]
https://www.itsvse.com/thread-9558-1-1.html


En développement, en utilisant le framework EF Core, en utilisant des expressions linq ou lambda, nous ne pouvons pas visualiser directement les instructions SQL, ce qui est gênant pour nous pour dépanner ou optimiser les performances.
ef affiche les instructions SQL générées
https://www.itsvse.com/thread-3813-1-1.html

Cet article utilise EF Core 5 comme exemplepour consulter les instructions SQL générées par l’EF de sortie.


D’abord, créez une nouvelle variable d’usine consolelogger dans le fichier de démarrage avec la variable « ConsoleLoggerFactory », et l’instruction sql générée sera envoyée à la console, le code est le suivant :

Ajoutez la sortie logarithmique à la méthode ConfigureServices en configurant le code DbContext comme suit :

Démarrez le projet et voyez la sortie console comme suit :

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Exécuté DbCommand (1ms) [Paramètres=[], CommandType='Text', CommandTimeout='30']
      SELECT [a]. [Id], [a]. [Handicapé], [a]. [Lien], [a]. [Nom], [a]. [PinYin], [a]. [Position], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      DEPUIS [Zone] EN TANT [A]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Exécuté DbCommand (19ms) [Paramètres=[p0=' ?' (Taille = 4000)], TypeCommand='Text', CommandTimeout='30']
      SELECT * FROM Area OÙ pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Exécuté DbCommand (1ms) [Paramètres=[], CommandType='Text', CommandTimeout='30']
      SELECT * FROM Zone


Si l’instruction SQL avec la condition where ne peut voir que les variables paramétrées, et non les valeurs spécifiques passées, la configuration suivante est ajoutée :

Permettre l’inclusion des données d’application dans les messages d’exception, les journaux, et plus encore.

Cela peut inclure les valeurs attribuées aux propriétés d’instance d’entité,

les valeurs des paramètres des commandes envoyées à la base de données, ainsi que d’autres données similaires.

Ce drapeau ne doit être activé que si des mesures de sécurité sont en place

En fonction de la sensibilité de ces données.

Notez si la candidature est en cours

Appelez le générateur Microsoft.EntityFrameworkCore.DbContextOptions.UseInternalServiceProvider(system. IServiceProvider),

Cette option doit alors être configurée de la même manière pour toute utilisation de ce fournisseur de services.

Envisagez de ne pas appeler Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system). IServiceProvider)

EF gérera donc le fournisseur de services et pourra créer de nouvelles instances selon les besoins


La configuration complète est la suivante :

Les rendus sont les suivants :



Bien sûr, les réglages ci-dessus peuvent aussi être configurés en supplantant la méthode OnConfiguring du DbContext (non recommandée) :

(Fin)




Précédent:Évaluation d’analyse boursière Financial TipRanks
Prochain:EF Core Series (5) exécute des instructions SQL ou des vues, ainsi que des procédures stockées
 Propriétaire| Publié sur 26/09/2021 09:21:07 |
ef affiche les instructions SQL générées
https://www.itsvse.com/thread-3813-1-1.html
Publié sur 26/10/2021 09:46:19 |
Étudiez, voyez quelle est la limite de temps
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com