Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 55374|Antwoord: 2

[Bron] EF Core Series 4 kijkt naar de gegenereerde SQL-instructies

[Link kopiëren]
Geplaatst op 19-02-2021 13:36:34 | | | |
EF Core Series 2 bevat OnModelCreating, maakt indexen met behulp van reflecties, en meer
https://www.itsvse.com/thread-9392-1-1.html

EF Core Series (3) Entity Frame Schaduwattributen [Herdruk]
https://www.itsvse.com/thread-9558-1-1.html


In ontwikkeling, bij het gebruik van het EF core-framework, bij het gebruik van linq- of lambda-expressies, kunnen we de SQL-statements niet direct bekijken, wat onhandig is om de prestaties te onderzoeken of te optimaliseren.
ef toont de gegenereerde SQL-instructies
https://www.itsvse.com/thread-3813-1-1.html

Dit artikel gebruikt EF Core 5 als voorbeeldom de SQL-instructies te bekijken die door de uitvoer EF worden gegenereerd.


Maak eerst een nieuwe consolelogger factory-variabele aan in het opstartbestand met de variabele "ConsoleLoggerFactory", en de gegenereerde sql-instructie wordt naar de console gestuurd; de code is als volgt:

Voeg loguitvoer toe aan de ConfigureServices-methode door de DbContext-code als volgt te configureren:

Start het project en bekijk de console-output als volgt:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Uitgevoerde DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECTEER [a]. [Id], [a]. [Uitgeschakeld], [a]. [Link], [a]. [Naam], [a]. [PinYin], [a]. [Positie], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      VAN [Gebied] ALS [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Uitgevoerde DbCommand (19ms) [Parameters=[p0='?' (Grootte = 4000)], CommandType='Text', CommandTimeout='30']
      SELECTEER * UIT Gebied WAAR pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Uitgevoerde DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECTEER * UIT Gebied


Als de SQL-instructie met de where-voorwaarde alleen de geparametriseerde variabelen kan zien, niet de specifieke doorgegeven waarden, wordt de volgende configuratie toegevoegd:

Schakel applicatiegegevens in om te worden opgenomen in uitzonderingsberichten, logboeken en meer.

Dit kan waarden omvatten die zijn toegewezen aan entiteitsinstantie-eigenschappen,

parameterwaarden van commando's die naar de database worden gestuurd, en andere dergelijke gegevens.

Deze vlag mag alleen worden ingeschakeld als er veiligheidsmaatregelen zijn genomen

Gebaseerd op de gevoeligheid van deze gegevens.

Let op of de aanvraag wordt goedgekeurd

Roep de Microsoft.EntityFrameworkCore.DbContextOptions generator aan.UseInternalServiceProvider(system. IServiceProvider),

Deze optie moet vervolgens op dezelfde manier worden geconfigureerd voor al het gebruik van die dienstverlener.

Overweeg om Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. IServiceProvider)

EF zal daarom de serviceprovider beheren en kan nieuwe instanties aanmaken indien nodig


De volledige opstelling is als volgt:

De renderings zijn als volgt:



Natuurlijk kunnen bovenstaande instellingen ook worden geconfigureerd door de OnConfiging-methode van de DbContext te overschrijven (niet aanbevolen):

(Einde)




Vorig:Financial TipRanks Aandelenanalyse Beoordelingen
Volgend:EF Core Series (5) voert SQL-instructies of views uit, opgeslagen procedures
 Huisbaas| Geplaatst op 26-09-2021 09:21:07 |
ef toont de gegenereerde SQL-instructies
https://www.itsvse.com/thread-3813-1-1.html
Geplaatst op 26-10-2021 09:46:19 |
Bestudeer, kijk hoe de tijdslimiet is
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com