Пожалуйста, посмотрите следующий пример, который является очень упрощенной версией моего кода:
Dim Criteria = Session.CreateCriteria(Of Person)()
Criteria.SetProjection(Projections.Property("Car"))
return Criteria.List(Of Car)()
Это отлично работает, однако NHibernate 3.1 создает два запроса для получения результатов.Что-то вроде:
SELECT CarId FROM Person WHERE blababla
, а затем для каждой строки:
SELECT color, brand, wheels FROM Car WHERE CarId = ?
Это не очень эффективно, поэтому я попытался:
Criteria.CreateAlias("Car", "Car")
Criteria.SetFetchMode("Car", NHibernate.FetchMode.Join)
Что ничего не делает.Как я могу заставить NHibernate выполнить объединение по первому запросу, чтобы я в итоге получил одну поездку на сервер MySql?