Я пытаюсь кодировать следующий HQL-запрос, используя Criteria API:
var userList = _session
.CreateQuery("select u from User u where u.Role.ID=3 and u.Customer.ID=:cID")
.SetInt32("cID", 1)
.List<User>();
(3 объекта NHibernate: пользователь (идентификатор, имя, роль, клиент), роль (идентификатор, имя) и клиент (идентификатор, имя).
Я попробовал следующее, но это не работает, потому что NHibernate пытается найти клиента, связанного с ролью:
var userList = _session
.CreateCriteria(typeof(User))
.CreateCriteria("Role")
.Add(Restrictions.Eq("ID", 3) )
.CreateCriteria("Customer")
.Add(Restrictions.Eq("ID", 1) )
.List<User>();
Есть ли другой способ (это работает!) Сделать это?