Как посмотреть SQL, сгенерированный Entity Framework?

559
задан Sr Julien 6 October 2016 в 14:55
поделиться

2 ответа

Вы можете сделать следующее:

IQueryable query = from x in appEntities
             where x.id = 32
             select x;

var sql = ((System.Data.Objects.ObjectQuery)query).ToTraceString();

или в EF6:

var sql = ((System.Data.Entity.Core.Objects.ObjectQuery)query)
            .ToTraceString();

Это даст вам SQL, который был создан.

454
ответ дан 22 November 2019 в 22:05
поделиться

Есть два способа:

  1. Чтобы просмотреть SQL, который будет сгенерирован, просто вызовите ToTraceString () . Вы можете добавить его в окно просмотра и установить точку останова, чтобы увидеть, каким будет запрос в любой заданной точке для любого запроса LINQ.
  2. Вы можете прикрепить трассировщик к выбранному вами серверу SQL, который покажет вам окончательный запрос во всех его кровавых подробностях. В случае MySQL самый простой способ отследить запросы - просто добавить в журнал запросов tail -f . Вы можете узнать больше о средствах ведения журнала MySQL в официальной документации . Для SQL Server проще всего использовать включенный профилировщик SQL Server.
16
ответ дан 22 November 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: