Получение запросов SQL, созданных с помощью Entity Framework Plus? - PullRequest
0 голосов
/ 10 мая 2019

Я наслаждаюсь возможностями Entity Framework Plus по сравнению с Entity Framework 6 уже несколько часов, и особенно его IncludeFilter .

С помощью обычной Entity Framework 6 я смог просто вызвать ToString () для IQueryable, чтобы легко получить запрос SELECT, который будет фактически обрабатываться на сервере БД.

Но с EF +, когда я применяю IncludeFilter, я получаю только:

 Z.EntityFramework.Plus.QueryIncludeFilterParentQueryable`1[MyRecord]

Потому что ToString(), похоже, не перегружается в EF +.

Есть ли способ получить SQL, сгенерированный для запросов "IncludeFilter", а также для классических запросов?

Я знаю, что мог бы получить его на самом SQL-сервере с помощью соответствующих инструментов профилирования, но я бы хотел сделать это на стороне кода в EF.

1 Ответ

1 голос
/ 11 мая 2019

Есть ли способ получить SQL, сгенерированный для запросов "IncludeFilter", а также для классических запросов?

Нет, сейчас нет возможности.

Это может произойти позже, но в данный момент библиотека не предлагает эту функцию.

(я владелец)

РЕДАКТИРОВАТЬ: Ответить на комментарий

Моим главным беспокойством было узнать, оптимизированы ли сгенерированные запросы

Я бы не назвал их оптимизированными. Они генерируются Entity Framework, и с нашей стороны ничего не изменилось.

  • IncludeFilter: создайте один ОЧЕНЬ большой запрос, как Include делает в EF6
  • IncludeOptimized: создайте несколько небольших запросов, как это делает Include в EF Core
...