Прямо сейчас я использую Criteria API и мне это нравится, но было бы еще лучше, если бы я мог переключиться на QueryOver API. Тем не менее, мои настройки немного странные. Чтобы разбить данные на таблицы, у меня есть один базовый абстрактный класс:
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 не позволяет мне сделать это - основная проблема заключается в следующем:
DBSession.QueryOver<Listing_UK>()
не приведен к
DBSession.QueryOver<Listing>
Хотя я понимаю, почему, мне интересно, есть ли у кого-нибудь какой-нибудь трюк, который я мог бы использовать для создания общего QueryOver, которое все еще будет предназначаться для нужной таблицы?