Как я могу использовать отладчик VisualStudio 10 для проверки основного текста критериев nHibernate (3.1)

Под Windows у меня есть код, похожий на следующий:

var active_ids = QueryOver.Of<Members>()
.Where(m => m.HasAccess);

Я обнаружил, что если я сломаю отладчик после этой строки и наберу
?active_ids.criteria, отобразится следующее:

{IsApproved = True}

и

var namematch = Restrictions.Disjunction();
namematch.Add(Restrictions.Where<Members>(m => m.FirstName.IsInsensitiveLike(name.AsStartsWith())));
namematch.Add(Restrictions.Where<Members>(m => m.LastName.IsInsensitiveLike(name.AsStartsWith())));
namematch.Add(Restrictions.Where<Members>(m => m.LastName.IsInsensitiveLike(("-" + name).AsContains())));

Я обнаружил, что если я сломаю отладчик после этой строки и наберу
?namematch.criteria, отобразится следующее:

Count = 3
    [0]: {FirstName ilike bak%}
    [1]: {LastName ilike bak%}
    [2]: {LastName ilike %-bak%}

Однако, когда у меня есть очень сложный запрос, похожий на:

var matchQuery = session.QueryOver<Member_Graph>()
.WithSubquery.WhereProperty(vg => vg.MemberId).In(memberlist)
.Where(approved_members)
.JoinQueryOver<Trainers_Graph>(t => t.trainers)
.Where(namematch)
.Select(t => t.trainers);

Однако когда я набираю ?matchQuery

«NHibernate...» не содержит определения для «критериев», и не удалось найти «критерии» метода расширения, принимающие первый аргумент типа ... (вам не хватает директивы использования или ссылки на сборку?)

Итак, используя отладчик Visual Studio, как я могу перечислить полные критерии, которые nHibernate генерирует для matchQuery


comment
что он отображает для ?matchQuery.RootCriteria?   -  person Firo    schedule 19.08.2011


Ответы (1)


session.QueryOver() - это просто оболочка для ICriteria, которая имеет хорошую возможность отображаться в виде строки. Чтобы получить доступ к основным критериям, используйте matchQuery.RootCriteria

person Firo    schedule 19.08.2011
comment
Есть ли простой способ увидеть весь sql, который будет сгенерирован, включая таблицы и т.д.? - person Noah; 19.08.2011
comment
см. davesquared.net/2008/01/ для логирования sql - person Firo; 21.08.2011
comment
Да, я знаю о параметрах логирования, я искал что-то, что отображало бы прямо в отладчике - person Noah; 21.08.2011