Вы можете использовать следующую логику.
Использовать запрос в памяти - IQueryable.
Первым вашим запросом будет определение списка сотрудников, общих для сущностей Employee и EmployeeIdentifier.Это будет запрос в памяти.
var caseList = new IList<Case>();
IQueryable<EmployeeIdentifier> empIdenList = Persister.Session.Query<EmployeeIdentifier>().Where(ei => ei.EmployeeId = 246834);
caseList = Persister.Session.Query<Case>().Where(e => empIdenList.Contains(e.Employee)).ToList<Case>();
Примечание. Мы выполняем вызов ToList () только во 2-м запросе, и это когда запрос фактически генерируется.Вы могли бы использовать NHIbernate Profiler, чтобы увидеть реальный SQL, который генерируется обратно.
Обратитесь к NHibernate.Linq DLL, чтобы узнать больше о Query ().