J'apprécie les fonctionnalités d' Entity Framework Plus par rapport à Entity Framework 6 depuis quelques heures, et en particulier son IncludeFilter .
Avec Entity Framework 6 standard, j'ai pu simplement appeler ToString () sur un IQueryable pour obtenir facilement la requête SELECT qui sera réellement traitée sur le serveur DB.
Mais avec EF +, lorsque j'applique un IncludeFilter, j'obtiens uniquement:
Z.EntityFramework.Plus.QueryIncludeFilterParentQueryable`1[MyRecord]
Parce que ToString()
semble pas être surchargé de la même manière dans EF +.
Existe-t-il un moyen de générer du SQL pour les requêtes "IncludeFilter" ainsi que pour les requêtes classiques?
Je sais que je pourrais l'obtenir sur le serveur SQL lui-même avec les outils de profilage adéquats, mais j'aimerais pouvoir le faire côté code dans EF.
Existe-t-il un moyen de générer du SQL pour les requêtes "IncludeFilter" ainsi que pour les requêtes classiques?
Non, il n'y a actuellement aucun moyen.
Cela pourrait arriver plus tard, mais pour le moment, la bibliothèque n'offre pas cette fonctionnalité.
(Je suis le propriétaire)
EDIT: Répondre au commentaire
Ma principale préoccupation était de savoir si les requêtes générées étaient optimisées
Je ne les appellerais pas optimisés. Ils sont générés par Entity Framework et rien n'est vraiment modifié de notre côté.
Include
fait dans EF6 Include
fait dans EF Core Vous pouvez utiliser le journal du contexte actuel pour suivre toutes les demandes effectuées sous cette instance
context.Database.Log = s => Console.WriteLine(s);