Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 55374|Svar: 2

[Kilde] EF Core Series 4 ser på de genererede SQL-sætninger

[Kopier link]
Opslået på 19/02/2021 13.36.34 | | | |
EF Core Series 2 indkapsler OnModelCreating, opretter indekser ved hjælp af refleksioner og mere
https://www.itsvse.com/thread-9392-1-1.html

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


I udvikling, når vi bruger ef core-frameworket, og når vi bruger linq- eller lambda-udtryk, kan vi ikke se SQL-udsagnene direkte, hvilket er besværligt for os at fejlfinde eller optimere ydeevnen.
ef viser de genererede SQL-sætninger
https://www.itsvse.com/thread-3813-1-1.html

Denne artikel bruger EF Core 5 som eksempelfor at se SQL-udsagnene genereret af output-EF.


Først opretter du en ny consolelogger factory-variabel i opstartsfilen med variablen "ConsoleLoggerFactory", og den genererede SQL-sætning vil blive eksporteret til konsollen, koden er som følger:

Tilføj logoutput til ConfigureServices-metoden ved at konfigurere DbContext-koden som følger:

Start projektet og se konsollens output som følger:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Udført DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      VÆLG [a]. [Id], [a]. [Deaktiveret], [a]. [Link], [a]. [Navn], [a]. [PinYin], [a]. [Position], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      FRA [Område] SOM [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Udførte DbCommand (19ms) [Parametre=[p0='?' (Størrelse = 4000)], CommandType='Text', CommandTimeout='30']
      VÆLG * FRA Område HVOR pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Udført DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      VÆLG * FRA Område


Hvis SQL-sætningen med where-betingelsen kun kan vise de parameteriserede variabler, ikke de specifikke værdier, der er sendt, tilføjes følgende konfiguration:

Gør det muligt for applikationsdata at blive inkluderet i undtagelsesmeddelelser, logfiler og mere.

Dette kan inkludere værdier tildelt entitetsinstansens egenskaber,

parameterværdier for kommandoer sendt til databasen og andre sådanne data.

Dette flag bør kun aktiveres, hvis der er sikkerhedsforanstaltninger på plads

Baseret på følsomheden af disse data.

Bemærk, om ansøgningen går igennem

Kald Microsoft.EntityFrameworkCore.DbContextOptions generator.UseInternalServiceProvider(system. IServiceProvider),

Denne mulighed skal derefter konfigureres på samme måde for al brug af den pågældende tjenesteudbyder.

Overvej ikke at kalde Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. IServiceProvider)

EF vil derfor styre tjenesteudbyderen og kan oprette nye instanser efter behov


Det fulde setup er som følger:

Renderingerne er som følger:



Selvfølgelig kan ovenstående indstillinger også konfigureres ved at overskrive OnConfiging-metoden i DbContext (ikke anbefalet):

(Slut)




Tidligere:Financial TipRanks aktieanalyse vurderinger
Næste:EF Core Series (5) udfører SQL-sætninger eller visninger, lagrede procedurer
 Udlejer| Opslået på 26/09/2021 09.21.07 |
ef viser de genererede SQL-sætninger
https://www.itsvse.com/thread-3813-1-1.html
Opslået på 26/10/2021 09.46.19 |
Studer, se hvordan tidsgrænsen er
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com