Arenduses, kui kasutame ef core raamistikku, kasutades linq või lambda avaldisi, ei saa me otse vaadata SQL-lauseid, mis on ebamugav tõrkeotsingul või jõudluse optimeerimisel.
Selles artiklis kasutatakse näiteks EF Core 5et vaadata väljundi EF poolt genereeritud SQL-lauseid.
Esiteks, loo käivitusfailis uus consoleloggeri tehase muutuja muutujaga "ConsoleLoggerFactory" ning genereeritud sql-lause väljastatakse konsoolile, kood on järgmine:
Lisa logiväljund ConfigureServices meetodile, konfigureerides DbContext koodi järgmiselt:
Alusta projekti ja vaata konsooli väljundit järgmiselt:
info: Microsoft.EntityFrameworkCore.Database.Command[20101] Käivitatud DbCommand (1ms) [parameetrid=[], CommandType='tekst', CommandTimeout='30'] VALI [a]. [Id], [a]. [Puudega], [a]. [Link], [a]. [Nimi], [a]. [PinYin], [a]. [Positsioon], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp] PIIRKONNAST [piirkonnast] KUI [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101] Käivitatud DbCommand (19ms) [parameetrid=[p0='?' (suurus = 4000)], CommandType='Text', CommandTimeout='30'] VALI * SEALT Ala KUS pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101] Käivitatud DbCommand (1ms) [parameetrid=[], CommandType='tekst', CommandTimeout='30'] VALI * PIIRKONNAST
Kui SQL-lause tingimusega kus suudab vaadata ainult parameetristatud muutujaid, mitte konkreetseid edastatud väärtusi, lisatakse järgmine konfiguratsioon:
Luba rakenduse andmeid lisada erandsõnumitesse, logidesse ja mujale.
See võib hõlmata väärtusi, mis on määratud entiteedi instantsi omadustele,
Andmebaasi saadetud käskude parameetriväärtused ja muud sellised andmed.
See lipp peaks olema lubatud ainult siis, kui on olemas ohutusmeetmed
Tuginedes nende andmete tundlikkusele.
Pane tähele, kui taotlus läbib
Helista Microsoft.EntityFrameworkCore.DbContextOptions generator.UseInternalServiceProvider(system. IServiceProvider),
See valik tuleb seejärel seadistada samamoodi kõigi teenusepakkuja kasutuskordade jaoks.
Kaalu mitte helistamist Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. IServiceProvider)
EF haldab seega teenusepakkujat ja saab vajadusel luua uusi instantse
Täielik ülesehitus on järgmine:
Renderdused on järgmised:
Loomulikult saab ülaltoodud seadeid seadistada ka DbContexti OnConfiguring meetodi (ei soovitata) üle kirjutamisega:
(Lõpp)
|