Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 55374|Respuesta: 2

[Fuente] EF Core Series 4 analiza las sentencias SQL generadas

[Copiar enlace]
Publicado en 19/2/2021 13:36:34 | | | |
EF Core Series 2 encapsula OnModelCreating, crea índices usando reflexiones y más
https://www.itsvse.com/thread-9392-1-1.html

Atributos de sombra de la estructura de la serie central EF (3) [Reimpresión]
https://www.itsvse.com/thread-9558-1-1.html


En desarrollo, al usar el framework core EF, al usar expresiones linq o lambda, no podemos ver directamente las sentencias SQL, lo que nos resulta incómodo para solucionar problemas u optimizar el rendimiento.
ef muestra las sentencias SQL generadas
https://www.itsvse.com/thread-3813-1-1.html

Este artículo utiliza EF Core 5 como ejemplopara ver las sentencias SQL generadas por la EF de salida.


Primero, crea una nueva variable de fábrica de consolalogger en el archivo de arranque con la variable "ConsoleLoggerFactory", y la instrucción sql generada se enviará a la consola, el código es el siguiente:

Añade la salida de log al método ConfigureServices configurando el código DbContext de la siguiente manera:

Inicia el proyecto y ve la salida de la consola de la siguiente manera:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Ejecutado DbCommand (1ms) [Parámetros=[], CommandType='Text', CommandTimeout='30']
      SELECT [a]. [Id], [a]. [Discapacitado], [a]. [Enlace], [a]. [Nombre], [a]. [PinYin], [a]. [Posición], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      DESDE [Área] COMO [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      DbCommand ejecutado (19ms) [Parámetros=[p0='?' (Tamaño = 4000)], TipoComando='Texto', Tiempode Límite='30']
      SELECT * FROM Area WHERE pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Ejecutado DbCommand (1ms) [Parámetros=[], CommandType='Text', CommandTimeout='30']
      SELECT * FROM Área


Si la sentencia SQL con la condición where solo puede ver las variables parametrizadas, no los valores específicos que pasaron, se añade la siguiente configuración:

Permite que los datos de la aplicación se incluyan en mensajes de excepción, registros y más.

Esto puede incluir valores asignados a las propiedades de la instancia de la entidad,

valores de parámetros de los comandos enviados a la base de datos y otros datos similares.

Esta bandera solo debe activarse si existen medidas de seguridad

Según la sensibilidad de estos datos.

Fíjate si la solicitud está en proceso

Llama al generador Microsoft.EntityFrameworkCore.DbContextOptions.UseInternalServiceProvider(system). IServiceProvider),

Esta opción debe configurarse de la misma manera para todo el uso de ese proveedor de servicios.

Considera no llamar a Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system). IServiceProvider)

Por tanto, EF gestionará el proveedor de servicios y podrá crear nuevas instancias según sea necesario


La configuración completa es la siguiente:

Las representaciones son las siguientes:



Por supuesto, los ajustes anteriores también pueden configurarse sobrescribiendo el método OnConfiguring del DbContext (no recomendado):

(Fin)




Anterior:Valoraciones de análisis bursátil de Financial TipRanks
Próximo:EF Core Series (5) ejecuta sentencias o vistas SQL y procedimientos almacenados
 Propietario| Publicado en 26/9/2021 9:21:07 |
ef muestra las sentencias SQL generadas
https://www.itsvse.com/thread-3813-1-1.html
Publicado en 26/10/2021 9:46:19 |
Estudia, mira cuál es el límite de tiempo
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com