Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 55374|Răspunde: 2

[Sursă] EF Core Series 4 analizează instrucțiunile SQL generate

[Copiază linkul]
Postat pe 19.02.2021 13:36:34 | | | |
EF Core Series 2 cuprinde OnModelCreating, creează indici folosind reflexii și multe altele
https://www.itsvse.com/thread-9392-1-1.html

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


În dezvoltare, când folosești framework ef core, când folosești expresii linq sau lambda, nu putem vizualiza direct instrucțiunile sql, ceea ce este incomod pentru noi pentru a depana sau optimiza performanța.
ef afișează instrucțiunile SQL generate
https://www.itsvse.com/thread-3813-1-1.html

Acest articol folosește EF Core 5 ca exemplupentru a vizualiza instrucțiunile SQL generate de EF-ul de ieșire.


Mai întâi, creează o nouă variabilă de fabrică consolelogger în fișierul de pornire cu variabila "ConsoleLoggerFactory", iar instrucțiunea sql generată va fi trimisă către consolă, codul fiind următorul:

Adaugă ieșirea logaritară la metoda ConfigureServices prin configurarea codului DbContext după cum urmează:

Începe proiectul și vezi rezultatul consolei după cum urmează:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executat DbCommand (1ms) [Parametri=[], CommandType='Text', CommandTimeout='30']
      SELECT [a]. [Id], [a]. [Invalid], [a]. [Link], [a]. [Nume], [a]. [PinYin], [a]. [Poziție], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      DE [Zonă] CA [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executat DbCommand (19ms) [Parametri=[p0='?' (Dimensiune = 4000)], ComandăTip='Text', TimpComandă='30']
      SELECT * DIN Zona UNDE pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executat DbCommand (1ms) [Parametri=[], CommandType='Text', CommandTimeout='30']
      SELECT * DIN Zonă


Dacă instrucțiunea SQL cu condiția where poate vizualiza doar variabilele parametrizate, nu valorile specifice trecute, se adaugă următoarea configurație:

Permiteți includerea datelor aplicației în mesajele excepționale, jurnale și altele.

Aceasta poate include valori atribuite proprietăților instanței entității,

valori ale parametrilor comenzilor trimise către baza de date și alte date similare.

Acest steag ar trebui activat doar dacă există măsuri de siguranță în vigoare

Pe baza sensibilității acestor date.

Notează dacă aplicația este în curs de proces

Sună generatorul Microsoft.EntityFrameworkCore.DbContextOptions.UseInternalServiceProvider(system. IServiceProvider),

Această opțiune trebuie apoi configurată în același mod pentru orice utilizare a acelui furnizor de servicii.

Ia în considerare să nu suni Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system). IServiceProvider)

Prin urmare, EF va gestiona furnizorul de servicii și poate crea instanțe noi după necesitate


Configurația completă este următoarea:

Randările sunt următoarele:



Desigur, setările de mai sus pot fi configurate și prin suprascrierea metodei OnConfiguring a DbContext (nu recomandată):

(Sfârșit)




Precedent:Financial TipRanks Evaluări de analiză a acțiunilor
Următor:EF Core Series (5) execută instrucțiuni SQL sau vizualizări, proceduri stocate
 Proprietarul| Postat pe 26.09.2021 09:21:07 |
ef afișează instrucțiunile SQL generate
https://www.itsvse.com/thread-3813-1-1.html
Postat pe 26.10.2021 09:46:19 |
Studiază, vezi cum este limita de timp
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com