Трудно сказать, как это сделать, не зная ваших сопоставлений, но это может быть что-то вроде этого:
q.Where(x => x.FirstName.Contains(dto.FirstName))
.Where(x => x.Employees.Any(emp => emp.Code.Contains(dto.Code)))
Если есть Person.Employees вообще.Но я должен признать, что не знаю, поддерживает ли Linq to NHibernate Any()
.Вероятно, это зависит от того, какую версию L2N вы используете.
Если это не сработает, вам следует попытать счастья с GroupJoin()
(из-за внешнего соединения), но я еще больше не уверен в полной поддержке L2Nдля этого.Насколько я вижу, это в L2N начиная с 3.0 beta, но надежно ли это ...?