Визуализируйте сгенерированный SQL из Linq To Entities - PullRequest
4 голосов
/ 09 июля 2009

Я ищу способ узнать, что такое sql, сгенерированный моим L2E-кодом для целей отладки. Я прочитал пост Скотта Г. на визуализаторе для Linq2SQL , но не могу заставить его работать на L2E.

Знаете ли вы какой-нибудь способ визуализации сгенерированного SQL из L2E?

Я использую Visual Studio 2008 SP1 Professional.

Ответы [ 2 ]

7 голосов
/ 13 июля 2009

Класс ObjectQuery имеет функцию ToTraceString (). Однако большинство запросов, которые вы пишете в LINQ, создаются как IQueryable, поэтому вам сначала нужно привести их к ObjectQuery для его использования.

или, если вы определите этот метод расширения, вы можете использовать его с IQ

public static string ToTraceString<T>(this IQueryable<T> expression)
        {                

            ObjectQuery<T> objectQuery = expression as ObjectQuery<T>;    
            if (objectQuery != null)
            {
                return objectQuery.ToTraceString();
            }
            return "";

        }

...

//then you could use it like this
IQueryable<Record> records = db.Record.Where(r=>r.Value > x);

string generatedQuery = record.ToTraceString();
1 голос
/ 21 сентября 2009

Попробуйте Sql Server Profile (если у вас установлен Sql Server). Откройте новое окно Trace, и там вы увидите все ваши запросы к Sql Server.

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