Существует сущность усилию, который имеет свойство Список и свойство AdType У нас есть несколько AdTypes перечисляемые объекты и specialLists объектов, перечислений выбрать IList<Effort>
NHibernate QueryOver на протяжении многих таблиц
Я делаю это следующим образом:
return NHibernateSession.QueryOver<Effort>()
.JoinQueryOver(effort => effort.AdType)
.WhereRestrictionOn(adType => adType.Id)
.IsIn(adTypes.Select(adt => (long)adt).ToList())
.Clone()
.JoinQueryOver(effort => effort.List)
.WhereRestrictionOn(list => list.Id)
.IsIn(specialLists.Select(sl => (long)sl).ToList())
.List<Effort>();
как можно видеть. Я использую странный метод Clone(), который не имеет никакого описания. Он отлично работает.
Каким образом вы используете QueryOver для таких запросов?
Мне интересно здесь то, что происходит, если опустить клон, также, что SQL запускаемое из к базе данных? – Rippo
Без Clone() он не будет пытаться выполнить следующие команды Join to Effort. Он попытается сделать это с AdType. Так что не будет .JoinQueryOver (effort => effort.List) будет .JoinQueryOver (adType => adType .....) – Anubis