Entity Framework сгенерированный SQL - PullRequest
6 голосов
/ 10 августа 2009

Можно ли выводить SQL, сгенерированный Entity Framework, на глобальном уровне, а не на основе запроса по запросу? Я просто хочу где-то свалить все, чтобы я мог просмотреть.

Если это невозможно, как просмотреть SQL-запрос, генерируемый для обновлений и вставок?

Ответы [ 4 ]

7 голосов
/ 10 августа 2009

SQL Server Profiler позволит вам просматривать команды, которые выполняются на сервере во время работы приложения.

Еще один бесплатный инструмент для профилирования SQL Server 2005 Express здесь .

UPDATE

Другим методом просмотра того, что генерируется LINQ, является свойство Log объекта DataContext.

Это TextWriter, который должен легко сохранять содержимое в файл или перенаправлять на Console.Out.

MSDN Информация для свойства журнала

3 голосов
/ 10 августа 2009

Вы хотите LinqPad , вот некоторые видео , которые показывают вам, как его использовать

1 голос
/ 10 октября 2012

Поскольку это изначально запрашивалось, теперь вы также можете использовать EFProf для профилирования вашего приложения Entity Framework, которое позволяет вам видеть SQL, сгенерированный среди многих других метрик.

1 голос
/ 13 декабря 2011

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

Очень изобретательный автор на форумах MSDN написал набор методов расширения, которые позволяют вам выводить SQL-вывод ObjectContext (то есть то, что будет выполняться при вызове SaveChanges()).

Вы можете найти ссылку здесь - найдите сообщение от g_yordanov, содержащее класс CustomExtensions.

Я проверял это в последнее время, и, похоже, он неплохо справляется. Единственный улов в том, что мне пришлось сделать исправление, предложенное Дэвидом Катером в этой теме - изменить Dictionary<long, object> на Dictionary<int, object>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...