Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 55374|Resposta: 2

[Fonte] EF Core Série 4 analisa as instruções SQL geradas

[Copiar link]
Publicado em 19/02/2021 13:36:34 | | | |
A EF Core Series 2 encapsula o OnModelCreating, cria índices usando reflexos e muito mais
https://www.itsvse.com/thread-9392-1-1.html

Atributos de Sombra do Quadro de Entidade da Série EF (3) [Reimpressão]
https://www.itsvse.com/thread-9558-1-1.html


No desenvolvimento, ao usar o framework ef core, ao usar expressões linq ou lambda, não podemos visualizar diretamente as instruções sql, o que é inconveniente para nós para solucionar problemas ou otimizar desempenho.
ef exibe as instruções SQL geradas
https://www.itsvse.com/thread-3813-1-1.html

Este artigo usa o EF Core 5 como exemplopara visualizar as instruções SQL geradas pelo EF de saída.


Primeiro, crie uma nova variável de fábrica consolelogger no arquivo de inicialização com a variável "ConsoleLoggerFactory", e a instrução sql gerada será enviada para o console, o código é o seguinte:

Adicione a saída de log ao método ConfigureServices configurando o código DbContext da seguinte forma:

Inicie o projeto e veja a saída do console da seguinte forma:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executado DbCommand (1ms) [Parâmetros=[], CommandType='Text', CommandTimeout='30']
      SELECT [a]. [Id], [a]. [Deficiente], [a]. [Link], [a]. [Nome], [a]. [PinYin], [a]. [Posição], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      DE [Área] COMO [um]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executado DbCommand (19ms) [Parâmetros=[p0='?' (Tamanho = 4000)], TipoComando='Texto', TempoComando Expirado='30']
      SELECT * FROM Área ONDE pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executado DbCommand (1ms) [Parâmetros=[], CommandType='Text', CommandTimeout='30']
      SELECT * FROM Área


Se a instrução SQL com a condição where só pode visualizar as variáveis parametrizadas, não os valores específicos passados, a seguinte configuração é adicionada:

Permita a inclusão dos dados da aplicação em mensagens de exceção, logs e mais.

Isso pode incluir valores atribuídos às propriedades da instância da entidade,

valores de parâmetros dos comandos enviados ao banco de datos, e outros dados semelhantes.

Essa bandeira só deve ser ativada se houver medidas de segurança em vigor

Com base na sensibilidade desses dados.

Observe se a inscrição estiver sendo aprovada

Chame o gerador Microsoft.EntityFrameworkCore.DbContextOptions.UseInternalServiceProvider(system). IServiceProvider),

Essa opção deve então ser configurada da mesma forma para todo uso desse provedor de serviço.

Considere não chamar Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system). IServiceProvider)

Portanto, o EF gerenciará o provedor de serviço e poderá criar novas instâncias conforme necessário


A configuração completa é a seguinte:

As renderizações são as seguintes:



Claro, as configurações acima também podem ser configuradas sobrescrevendo o método OnConfiguring do DbContext (não recomendado):

(Fim)




Anterior:Avaliações de Análise de Ações da Financial TipRanks
Próximo:A EF Core Series (5) executa instruções SQL ou visualizações, procedimentos armazenados
 Senhorio| Publicado em 26/09/2021 09:21:07 |
ef exibe as instruções SQL geradas
https://www.itsvse.com/thread-3813-1-1.html
Publicado em 26/10/2021 09:46:19 |
Estude, veja como é o limite de tempo
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com