Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 55374|Odpoveď: 2

[Zdroj] EF Core Series 4 skúma generované SQL príkazy

[Kopírovať odkaz]
Zverejnené 19. 2. 2021 13:36:34 | | | |
EF Core Series 2 zapuzdruje OnModelCreating, vytvára indexy pomocou odrazov a ďalšie
https://www.itsvse.com/thread-9392-1-1.html

EF Core Series (3) Atribúty tieňa rámca entít [Reprint]
https://www.itsvse.com/thread-9558-1-1.html


Pri vývoji, pri používaní frameworku EF Core, pri použití linq alebo lambda výrazov, nemôžeme priamo zobraziť SQL príkazy, čo je pre nás nepraktické pri riešení problémov alebo optimalizácii výkonu.
ef zobrazuje generované SQL príkazy
https://www.itsvse.com/thread-3813-1-1.html

Tento článok používa EF Core 5 ako príkladna zobrazenie SQL príkazov generovaných výstupným EF.


Najprv vytvorte novú consolelogger factory premennú v štartovacom súbore s premennou "ConsoleLoggerFactory" a generovaný SQL príkaz bude vypísaný do konzoly, kód je nasledovný:

Pridajte výstup logu do metódy ConfigureServices konfiguráciou kódu DbContext nasledovne:

Spustite projekt a pozrite si výstup z konzoly nasledovne:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Vykonaný DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      VYBERTE [a]. [Id], [a]. [Disabled], [a]. [Odkaz], [a]. [Name], [a]. [PinYin], [a]. [Pozícia], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      FROM [Area] AS [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Vykonaný DbCommand (19ms) [Parametre=[p0='?' (Veľkosť = 4000)], CommandType='Text', CommandTimeout='30']
      VYBRAŤ * Z oblasti KDE pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Vykonaný DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      VYBRAŤ * Z oblasti


Ak SQL príkaz s podmienkou where dokáže zobraziť iba parametrizované premenné, nie konkrétne hodnoty, ktoré sa odovzdali, pridá sa nasledujúca konfigurácia:

Umožnite zahrnutie aplikačných dát do výnimiek, logov a ďalších údajov.

To môže zahŕňať hodnoty priradené vlastnostiam inštancie entít,

hodnoty parametrov príkazov odoslaných do databázy a ďalšie takéto údaje.

Táto vlajka by mala byť zapnutá len v prípade bezpečnostných opatrení

Na základe citlivosti týchto údajov.

Všimnite si, či žiadosť prechádza

Zavolajte generátor Microsoft.EntityFrameworkCore.DbContextOptions.UseInternalServiceProvider(system. IServiceProvider),

Táto možnosť musí byť potom nakonfigurovaná rovnakým spôsobom pre všetky použitia daného poskytovateľa služieb.

Zvážte, že nevoláte Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. IServiceProvider)

EF teda spravuje poskytovateľa služieb a môže vytvárať nové inštancie podľa potreby


Kompletné nastavenie je nasledovné:

Vizualizácie sú nasledovné:



Samozrejme, vyššie uvedené nastavenia je možné nastaviť aj prepísaním metódy OnConfiguring v DbContext (čo sa neodporúča):

(Koniec)




Predchádzajúci:Financial TipRanks hodnotenia analýzy akcií
Budúci:EF Core Series (5) vykonáva SQL príkazy alebo pohľady, uložené procedúry
 Prenajímateľ| Zverejnené 26. 9. 2021 9:21:07 |
ef zobrazuje generované SQL príkazy
https://www.itsvse.com/thread-3813-1-1.html
Zverejnené 26. 10. 2021 9:46:19 |
Študuj, zisti, aký je časový limit
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com