Просмотр Entity SQL, созданного Linq-to-Entities - PullRequest
5 голосов
/ 02 марта 2011

Можно ли как-то просмотреть Entity Sql (eSQL), который мои запросы Linq-to-entity генерируют с помощью инфраструктуры EF (то есть не собственного SQL, а eSQL, если это имеет смысл?)

Спасибо!

Ответы [ 3 ]

7 голосов
/ 03 марта 2011

Вы не можете.Он не генерируется.
На самом деле запросы LINQ to Entities переводятся непосредственно в дерево выражений, а узлы этого дерева выражений переводятся в предложения SQL, а затем интегрируются в запрос SQL.Нет сущности SQL.

1 голос
/ 03 марта 2011
var query1 = from person in Database
           select person.Name;

Вы можете преобразовать query1 в ObjectQuery и использовать метод ToTraceString для просмотра запроса.

Console.WriteLine(((ObjectQuery)query1).ToTraceString());
0 голосов
/ 26 августа 2013

Для просмотра запроса linq в среде разработки.

  1. Вы присваиваете свой запрос в переменной IQueryable.
  2. Разместите точку отладки под запросом в следующей строке. Итак, запрос выполняется.
  3. Наведите указатель мыши на переменную IQueryable. Вы сможете увидеть SQL-запрос.
  4. Вы можете скопировать SQL-запрос в анализатор запросов SQL и выполнить его.

посмотреть пример на картинке http://i.stack.imgur.com/t6PK6.png

...