Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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 core framework, при използване на 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 (1ms) [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 (19ms) [параметри=[p0='?' (Размер = 4000)], CommandType='Текст', CommandTimeout='30']
      ИЗБЕРИ * ОТ Област, където пинИн = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Изпълнен DbCommand (1ms) [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