Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 55374|Ответ: 2

[Источник] EF Core Series 4 рассматривает сгенерированные SQL-операторы

[Скопировать ссылку]
Опубликовано 19.02.2021 13:36:34 | | | |
EF Core Series 2 инкапсулирует OnModelCreating, создает индексы с помощью отражений и многое другое
https://www.itsvse.com/thread-9392-1-1.html

EF Core Series (3) Теневые атрибуты кадра сущности [Перепечатка]
https://www.itsvse.com/thread-9558-1-1.html


В разработке, при использовании основного фреймворка ef, при использовании linq или lambda-выражений мы не можем напрямую просматривать sql-операторы, что неудобно для устранения неполадок или оптимизации производительности.
ef отображает сгенерированные SQL-операторы
https://www.itsvse.com/thread-3813-1-1.html

В этой статье приводится EF Core 5 в качестве примерачтобы просмотреть SQL-операторы, генерируемые выходным EF.


Сначала создайте новую заводскую переменную consolelogger в файле запуска с переменной «ConsoleLoggerFactory», и сгенерированный sql-оператор будет выведен в консоль, код выглядит следующим образом:

Добавьте вывод журнала в метод ConfigureServices, настроив код DbContext следующим образом:

Запустите проект и увидите результат консоли следующим образом:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Выполнено DbCommand (1 мс) [Parameters=[], CommandType='Text', CommandTimeout='30']
      ВЫБЕРИТЕ [a]. [id], [a]. [Отключён], [a]. [Ссылка], [a]. [Имя], [a]. [Пиньинь], [a]. [Позиция], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      ИЗ [Района] AS [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Выполнено DbCommand (19 мс) [параметры=[p0='?' (Размер = 4000)], CommandType='Text', CommandTimeout='30']
      ВЫБРАТЬ * ИЗ области ГДЕ пинИнь = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Выполнено DbCommand (1 мс) [Parameters=[], CommandType='Text', CommandTimeout='30']
      ВЫБРАТЬ * ИЗ ЗОНЫ


Если SQL-оператор с условием where может видеть только параметризованные переменные, а не конкретные передаваемые значения, добавляется следующая конфигурация:

Разрешите включение данных приложений в сообщения об исключениях, логах и других источниках.

Это может включать значения, присвоенные свойствам экземпляра сущности,

значения параметров команд, отправляемых в базу данных, и другие подобные данные.

Этот флаг должен быть включен только при наличии мер безопасности

Исходя из чувствительности этих данных.

Обратите внимание, проходит ли заявка

Вызовите генератор Microsoft.EntityFrameworkCore.DbContextOptions.UseInternalServiceProvider(system. IServiceProvider),

Эта опция должна быть настроена одинаково для всего использования этого провайдера.

Рассмотрите возможность не вызывать Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. IServiceProvider)

Таким образом, EF будет управлять поставщиком услуг и может создавать новые экземпляры по мере необходимости


Полная схема выглядит следующим образом:

Визуализации следующие:



Конечно, вышеуказанные настройки можно настроить, переопределив метод OnConfiguring в DbContext (не рекомендуется):

(Конец)




Предыдущий:Оценки анализа акций Financial TipRanks
Следующий:EF Core Series (5) выполняет SQL-операторы или просмотры, хранящиеся процедуры
 Хозяин| Опубликовано 26.09.2021 9:21:07 |
ef отображает сгенерированные SQL-операторы
https://www.itsvse.com/thread-3813-1-1.html
Опубликовано 26.10.2021 9:46:19 |
Учись, смотри, как проходит срок
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com