Я пытаюсь использовать проекции для создания DTO из класса Lead.У моего DTO есть, например, номер домашнего телефона, номер мобильного телефона и адрес электронной почты, но у ведущего класса есть набор контактных данных.Поэтому я пытаюсь найти способ извлечь каждую контактную информацию, чтобы я мог установить свойства в dto.Я пытался использовать подзапросы и прогнозы, но безрезультатно.
SQL, который я пытаюсь сгенерировать, выглядит примерно так:
SELECT
A.LeadId,
B.ContactId,
B.Value,
C.ContactId,
C.Value,
D.ContactId
FROM Lead A
LEFT JOIN ContactDetail B ON A.LeadId=B.LeadId AND B.ContactType='Home Number'
LEFT JOIN ContactDetail C ON A.LeadId=C.LeadId AND C.ContactType='Mobile Number'
LEFT JOIN ContactDetail D ON A.LeadId=D.LeadId AND D.ContactType='Email Address'
Итак, я пытаюсь присоединитьсяк одной и той же таблице 3 раза, основываясь на разных критериях, и я знаю, что в NHibernate я не могу использовать CreateAlias для соединения с одной и той же таблицей более одного раза, и мне хотелось бы знать, возможно ли это с помощью API Criteria или NHIbernateLinq.Заранее спасибо за любую помощь.