Как получить необработанный SQL, лежащий в основе запроса LINQ, при использовании Entity Framework CTP 5 «только код»?

Я использую Entity Framework CTP5 в режиме «только код». Я выполняю запрос LINQ к объекту, который был возвращен из базы данных, так как запрос выполняется очень медленно. Есть ли способ получить оператор SQL, сгенерированный из запроса?

Topic currentTopic =
    (from x in Repository.Topics
     let isCurrent = (x.StoppedAt <= x.StartedAt || (x.StartedAt >= currentTopicsStartedAtOrAfter))
     where x.Meeting.Manager.User.Id == user.Id && isCurrent
     orderby x.StartedAt descending
     select x).FirstOrDefault();

Свойство «Repository» является потомком DbContext.

Это немного сложно, поскольку EF не может использовать мой помощник методы для объектов, поэтому я указываю логику непосредственно в запросе.

Итак, есть ли способ вывести SQL, который будет создан этим запросом LINQ (например, в мой репозиторий log4net)?

15
задан dommer 1 March 2011 в 11:19
поделиться