NHibernate QueryOver для соединения несвязанных сущностей

У меня есть следующий рабочий запрос, который дает желаемые результаты:

int associatedId = 123;

MyObject alias = null;

var subQuery = QueryOver.Of<DatabaseView>()
    .Where(view => view.AssociatedId == associatedId)
    .And(view => view.ObjectId == alias.ObjectId)
    .Select(view => view.ObjectId);

var results = session.QueryOver<MyObject>(() => alias)
    .WithSubquery.WhereExists(subQuery)
    .List();

DatabaseView отображается как фактическая сущность NHibernate (поэтому я могу использовать его с QueryOver), но он не связан с MyObject в сопоставлениях HBM.

Этот запрос возвращает IList с помощью SELECT ... FROM MyObject WHERE EXISTS (здесь подзапрос для DatabaseView). Как я могу переписать это, чтобы вернуть ту же информацию, но вместо этого использовать JOIN?

9
задан David McClelland 16 June 2011 в 20:32
поделиться