Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 55374|Svar: 2

[Källa] EF Core Series 4 tittar på de genererade SQL-satserna

[Kopiera länk]
Publicerad på 2021-02-19 13:36:34 | | | |
EF Core Series 2 kapslar in OnModelCreating, skapar index med reflektioner och mer
https://www.itsvse.com/thread-9392-1-1.html

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


I utveckling, när vi använder ef core-ramverket, när vi använder linq- eller lambda-uttryck, kan vi inte direkt se SQL-satserna, vilket är besvärligt för oss att felsöka eller optimera prestandan.
ef visar de genererade SQL-satserna
https://www.itsvse.com/thread-3813-1-1.html

Den här artikeln använder EF Core 5 som exempelför att visa SQL-satserna som genereras av utdata EF.


Skapa först en ny consolelogger factory-variabel i startfilen med variabeln "ConsoleLoggerFactory", och den genererade sql-satsen kommer att matas ut till konsolen, koden är följande:

Lägg till loggutdata till ConfigureServices-metoden genom att konfigurera DbContext-koden enligt följande:

Starta projektet och se konsolens utdata enligt följande:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Utförd DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      VÄLJ [a]. [Id], [a]. [Inaktiverad], [a]. [Link], [a]. [Namn], [a]. [PinYin], [a]. [Position], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      FRÅN [Område] SOM [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Utfört DbCommand (19ms) [Parametrar=[p0='?' (Storlek = 4000)], CommandType='Text', CommandTimeout='30']
      VÄLJ * FRÅN Område DÄR pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Utförd DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      VÄLJ * FRÅN Område


Om SQL-satsen med where-villkoret endast kan visa de parameteriserade variablerna, inte de specifika värden som skickats, läggs följande konfiguration till:

Möjliggör att applikationsdata inkluderas i undantagsmeddelanden, loggar och mer.

Detta kan inkludera värden tilldelade entitetsinstansegenskaper,

parametervärden för kommandon som skickas till databasen, samt annan sådan data.

Denna flagga bör endast aktiveras om säkerhetsåtgärder finns på plats

Baserat på känsligheten i dessa data.

Observera om ansökan går igenom

Anropa Microsoft.EntityFrameworkCore.DbContextOptions generator.UseInternalServiceProvider(system. IServiceProvider),

Detta alternativ måste sedan konfigureras på samma sätt för all användning av den tjänsteleverantören.

Överväg att inte anropa Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. IServiceProvider)

EF kommer därför att hantera tjänsteleverantören och kan skapa nya instanser vid behov


Hela uppställningen är följande:

Renderingarna är följande:



Självklart kan ovanstående inställningar också konfigureras genom att åsidosätta OnConfiguring-metoden i DbContext (inte rekommenderad):

(Slut)




Föregående:Financial TipRanks aktieanalysbetyg
Nästa:EF Core Series (5) exekverar SQL-satser eller vyer, lagrade procedurer
 Hyresvärd| Publicerad på 2021-09-26 09:21:07 |
ef visar de genererade SQL-satserna
https://www.itsvse.com/thread-3813-1-1.html
Publicerad på 2021-10-26 09:46:19 |
Studera, se hur tidsgränsen är
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com