Структура объекта: В доме много комнат.В комнате много столов.В таблице много ваз (на ней).
Дом> Комнаты> Столы> Вазы.
Я хотел бы использовать JoinQueryOver, чтобы выбрать все таблицы с вазами красного цвета - в частностиhouse.
Я думал сделать это:
var v = session.QueryOver<House>()
.Where(x => x.ID == HouseID)
.JoinQueryOver<Room>(x => x.Rooms)
.JoinQueryOver<Table>(x => x.Tables)
.JoinQueryOver<Vase>(x => x.Vases)
.Where(x => x.Color == "Red")
.SingleOrDefault<House>();
Это был подход, который я попробовал (из многих, которые потерпели неудачу).Мне не очень нужна информация о доме и комнате.
В конечном счете, я ищу Список столов (в конкретном доме) с извлеченными коллекциями ваз (красного цвета).
Спасибо за помощь!
Редактировать
Примерно так было бы неплохо:
var v = session.QueryOver<Table>()
.Where(x => x.Room.House.ID == HouseID) // this Where won't work.
.JoinQueryOver<Vase>(x => x.Vases)
.Where(x => x.Color == "Red")
.List().ToList();