Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 55374|Svare: 2

[Kilde] EF Core Series 4 ser på de genererte SQL-setningene

[Kopier lenke]
Publisert på 19.02.2021 13:36:34 | | | |
EF Core Series 2 kapsler inn OnModelCreating, lager indekser ved hjelp av refleksjoner, og mer
https://www.itsvse.com/thread-9392-1-1.html

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


I utvikling, når vi bruker ef core-rammeverket, og når vi bruker linq- eller lambda-uttrykk, kan vi ikke se SQL-setningene direkte, noe som er upraktisk for oss å feilsøke eller optimalisere ytelsen.
ef viser de genererte SQL-setningene
https://www.itsvse.com/thread-3813-1-1.html

Denne artikkelen bruker EF Core 5 som eksempelfor å se SQL-setningene generert av utdataene EF.


Først oppretter du en ny consolelogger factory-variabel i oppstartsfilen med variabelen "ConsoleLoggerFactory", og den genererte sql-setningen vil bli eksportert til konsollen, koden er som følger:

Legg til loggutgang i ConfigureServices-metoden ved å konfigurere DbContext-koden som følger:

Start prosjektet og se konsollens utgang som følger:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Utført DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      VELG [a]. [Id], [a]. [Funksjonshemmet], [a]. [Link], [a]. [Navn], [a]. [PinYin], [a]. [Posisjon], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      FRA [Område] SOM [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Utført DbCommand (19ms) [Parametere=[p0='?' (Størrelse = 4000)], CommandType='Text', CommandTimeout='30']
      VELG * FRA Område HVOR pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Utført DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      VELG * FRA Område


Hvis SQL-setningen med where-betingelsen kun kan se de parameteriserte variablene, ikke de spesifikke verdiene som er sendt, legges følgende konfigurasjon til:

Gjør det mulig å inkludere applikasjonsdata i unntaksmeldinger, logger og mer.

Dette kan inkludere verdier tildelt enhetens instansegenskaper,

parameterverdier for kommandoer sendt til databasen, og andre slike data.

Dette flagget bør kun aktiveres dersom det finnes sikkerhetstiltak på plass

Basert på sensitiviteten til disse dataene.

Merk om søknaden går gjennom

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

Dette alternativet må deretter konfigureres på samme måte for all bruk av den tjenesteleverandøren.

Vurder å ikke kalle Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. IServiceProvider)

EF vil derfor administrere tjenesteleverandøren og kan opprette nye instanser etter behov


Hele oppsettet er som følger:

Gjengivelsene er som følger:



Selvfølgelig kan de ovennevnte innstillingene også konfigureres ved å overskrive OnConfiging-metoden i DbContext (ikke anbefalt):

(Slutt)




Foregående:Financial TipRanks aksjeanalysevurderinger
Neste:EF Core Series (5) utfører SQL-setninger eller visninger, lagrede prosedyrer
 Vert| Publisert på 26.09.2021 09:21:07 |
ef viser de genererte SQL-setningene
https://www.itsvse.com/thread-3813-1-1.html
Publisert på 26.10.2021 09:46:19 |
Studer, se hvordan tidsfristen er
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com