Представьте себе структуру базы данных, в которой у вас есть Class
и Student
, а у ученика есть один класс, и наоборот, в классе много учеников.
Как поступить в Nhibernate для созданиязапрос (предпочтительно QueryOver или Criteria API) для следующего.
Select ANY class which contains BOTH StudentA and StudentB.
Если бы это был дизъюнкция (ИЛИ), я мог бы сделать это, указав
List<Student> studentRestrictionList = new List<Student>();
studentRestrictionList.Add(studentA);
studentRestrictionList.Add(studentB);
Student studentAlias = null;
var q = session.QueryOver<Class>();
q.Left.JoinAlias(item => item.Students, () => studentsAlias);
q.WhereRestrictionOn(() => studentsAlias.ID)IsInG(studentRestrictionList);
Проблеманачинается, когда мне нужно сделать соединение (И).
Есть идеи?