Сейчас я использую API критериев и люблю его, но было бы еще лучше, если бы я мог переключиться на API QueryOver. Однако моя настройка немного странная. Для того, чтобы раздел данных в таблицы, у меня есть один базовый абстрактный класс:NHibernate-QueryOver с использованием базовых классов?
Listing
и ряд классов, которые наследуют от:
Listing_UK
Listing_US
etc.
с критериями API, я могу сделать что-то вроде:
Type t = typeof(Listing_UK);
if (condition) t = typeof(Listing_US);
DbSession.CreateCriteria(t)
.Add(Restriction.Eq("field",value)
.List<Listing>());
В принципе, используя тот же запрос для разных классов. Похоже, что сильно типизированный характер QueryOver мешает мне делать this- основной проблемы в том, что:
DBSession.QueryOver<Listing_UK>()
не бросает в
DBSession.QueryOver<Listing>
В то время как я понимаю, почему мне интересно если у кого-нибудь есть трюк, который я мог бы использовать для создания общего QueryOver, который по-прежнему будет нацелен на правую таблицу?
Критерии использования. Они одинаковы под капотом –
@ Diego - я знаю. Но QueryOver предлагает некоторые большие преимущества - в частности, проверка правильности имен полей и т. Д. При сборке. Делает это * много * проще переименовать поля. – Alastair
написать единичный тест для этого тривиально. –