Я только немного углубился в NHibernate, и у меня возникли проблемы с одним из более «сложных» (для меня!) Запросов, которые я должен написать.Сценарий:
У меня есть объект «Посох», к которому прикреплена коллекция «Умений».Я хотел бы передать список «Навыков» для запроса (например, если мне нужны только люди, которые могут либо «Готовить», либо «Кодировать», либо и то, и другое) и вернуть список подходящих сотрудников, но у менянебольшая проблема ....
То, что у меня есть по-объектному:
public class StaffMember : Resource
{
public virtual string EmployeeId { get; set; }
public virtual bool IsTeamLeader { get; set; }
public virtual StaffMember TeamLeader { get; set; }
public virtual IList<Skill> Skills { get; set; }
}
public class Skill : BaseDomainObject
{
public virtual string Name { get; set; }
}
И я думаю, что SQL будет выглядеть примерно так:
select distinct st.*
from staff st, resource re
inner join staffskills sks on re.id = sks.staffresourceid
inner join skill ski on ski.id = sks.skillid
where st.resourceid = re.id
and ski.id in (1,2,3,4)
Я пытался использовать «Expression.InG (« Skills », skillSearchList)» в критериях, но его нельзя использовать, когда в игре находятся две коллекции (например, если у них был только один навык, это было бы хорошо!).... какие-нибудь указатели?