Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 55374|Risposta: 2

[Fonte] EF Core Series 4 esamina le istruzioni SQL generate

[Copiato link]
Pubblicato su 19/02/2021 13:36:34 | | | |
EF Core Series 2 racchiude OnModelCreating, crea indici usando riflessi e altro ancora
https://www.itsvse.com/thread-9392-1-1.html

EF Core Series (3) Attributi Ombra del Frame Entità [Ristampa]
https://www.itsvse.com/thread-9558-1-1.html


Nello sviluppo, quando si utilizza il framework core EF, quando si usano espressioni linq o lambda, non possiamo visualizzare direttamente le istruzioni SQL, il che è scomodo per noi per risolvere problemi o ottimizzare le prestazioni.
ef visualizza le istruzioni SQL generate
https://www.itsvse.com/thread-3813-1-1.html

Questo articolo usa EF Core 5 come esempioper visualizzare le istruzioni SQL generate dall'EF di output.


Per prima cosa, crea una nuova variabile di fabbrica consolelogger nel file di avvio con la variabile "ConsoleLoggerFactory", e l'istruzione sql generata verrà inviata alla console, il codice è il seguente:

Aggiungi l'output del log al metodo ConfigureServices configurando il codice DbContext come segue:

Avvia il progetto e guarda il risultato della console come segue:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Eseguito DbCommand (1ms) [Parametri=[], CommandType='Text', CommandTimeout='30']
      SELEZIONA [a]. [Id], [a]. [Disabile], [a]. [Link], [a]. [Nome], [a]. [PinYin], [a]. [Posizione], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      DA [Area] COME [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Eseguito DbCommand (19ms) [Parametri=[p0='?' (Dimensione = 4000)], TipoComando='Testo', TempoComando Smitenza='30']
      SELEZIONA * DA Area DOVE pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Eseguito DbCommand (1ms) [Parametri=[], CommandType='Text', CommandTimeout='30']
      SELEZIONA * DALL'Area


Se l'istruzione SQL con la condizione where può visualizzare solo le variabili parametrizzate, non i valori specifici passati, viene aggiunta la seguente configurazione:

Abilita l'inclusione dei dati applicativi nei messaggi di eccezione, nei log e altro.

Questo può includere valori assegnati alle proprietà dell'istanza dell'entità,

valori dei parametri dei comandi inviati al database e altri dati simili.

Questa bandiera dovrebbe essere attivata solo se sono previste misure di sicurezza

In base alla sensibilità di questi dati.

Nota se la domanda sta andando avanti

Chiama il generatore Microsoft.EntityFrameworkCore.DbContextOptions.UseInternalServiceProvider(system. IServiceProvider),

Questa opzione deve quindi essere configurata allo stesso modo per ogni utilizzo di quel fornitore di servizi.

Considera di non chiamare Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. IServiceProvider)

EF quindi gestirà il fornitore di servizi e potrà creare nuove istanze secondo necessità


La configurazione completa è la seguente:

Le rappresentazioni sono le seguenti:



Naturalmente, le impostazioni sopra possono essere configurate anche sovrascrivendo il metodo OnConfiguring del DbContext (non raccomandato):

(Fine)




Precedente:Valutazioni di analisi azionaria di Financial TipRanks
Prossimo:EF Core Series (5) esegue istruzioni o viste SQL, stored procedure
 Padrone di casa| Pubblicato su 26/09/2021 09:21:07 |
ef visualizza le istruzioni SQL generate
https://www.itsvse.com/thread-3813-1-1.html
Pubblicato su 26/10/2021 09:46:19 |
Studia, vedi com'è il limite di tempo
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com