Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 55374|Atsakyti: 2

[Šaltinis] EF Core Series 4 peržiūri sugeneruotus SQL sakinius

[Kopijuoti nuorodą]
Paskelbta 2021-02-19 13:36:34 | | | |
"EF Core Series 2" apima "OnModelCreation", kuria indeksus naudodama atspindžius ir kt.
https://www.itsvse.com/thread-9392-1-1.html

EF Core serijos (3) objekto rėmelio šešėlio atributai [Pakartotinis spausdinimas]
https://www.itsvse.com/thread-9558-1-1.html


Kuriant, naudojant ef core sistemą, naudojant linq arba lambda išraiškas, negalime tiesiogiai peržiūrėti sql sakinių, o tai mums nepatogu šalinti triktis ar optimizuoti našumą.
ef rodo sugeneruotus SQL sakinius
https://www.itsvse.com/thread-3813-1-1.html

Šiame straipsnyje kaip pavyzdys naudojamas EF Core 5, kad peržiūrėtumėte išvesties EF sugeneruotus SQL sakinius.


Pirmiausia paleisties faile sukurkite naują "consolelogger" gamyklinį kintamąjį su kintamuoju "ConsoleLoggerFactory", o sugeneruotas sql sakinys bus išvestas į konsolę, kodas yra toks:

Įtraukite žurnalo išvestį į metodą ConfigureServices konfigūruodami DbContext kodą taip:

Pradėkite projektą ir pamatykite konsolės išvestį taip:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Įvykdyta DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      PASIRINKITE [a]. [Id], [a]. [Išjungta], [a]. [Nuoroda], [a]. [Vardas], [a]. [PinYin], [a]. [Padėtis], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      FROM [Area] AS [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Įvykdyta DbCommand (19ms) [Parameters=[p0='?' (Dydis = 4000)], CommandType='Tekstas', CommandTimeout='30']
      SELECT * FROM Sritis KUR pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Įvykdyta DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      PASIRINKITE * IŠ srities


Jei SQL sakinys su sąlyga where gali peržiūrėti tik parametrizuotus kintamuosius, o ne konkrečias perduotas reikšmes, pridedama ši konfigūracija:

Įgalinkite programos duomenis įtraukti į išimčių pranešimus, žurnalus ir kt.

Tai gali apimti objekto egzemplioriaus ypatybėms priskirtas reikšmes,

į duomenų bazę siunčiamų komandų parametrų reikšmės ir kiti panašūs duomenys.

Ši žyma turėtų būti įjungta tik tuo atveju, jei taikomos saugos priemonės

Remiantis šių duomenų jautrumu.

Atkreipkite dėmesį, jei programa vykdoma

Iškvieskite Microsoft.EntityFrameworkCore.DbContextOptions generator.UseInternalServiceProvider(system. IServiceProvider),

Tada ši parinktis turi būti sukonfigūruota vienodai visam to paslaugų teikėjo naudojimui.

Apsvarstykite galimybę neiškviesti Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. IServiceProvider)

Todėl EF valdys paslaugų teikėją ir prireikus galės kurti naujus egzempliorius


Visa sąranka yra tokia:

Atvaizdai yra tokie:



Žinoma, aukščiau pateiktus nustatymus taip pat galima sukonfigūruoti nepaisydami DbContext metodo OnConfiguring (nerekomenduojama):

(Pabaiga)




Ankstesnis:Finansiniai "TipRanks" akcijų analizės reitingai
Kitą:EF Core serija (5) vykdo SQL sakinius arba rodinius, saugomas procedūras
 Savininkas| Paskelbta 2021-09-26 09:21:07 |
ef rodo sugeneruotus SQL sakinius
https://www.itsvse.com/thread-3813-1-1.html
Paskelbta 2021-10-26 09:46:19 |
Studijuokite, pažiūrėkite, kaip yra laiko limitas
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com