Nhibernate объединяет таблицы по нескольким столбцам - PullRequest
0 голосов
/ 04 ноября 2011

У меня следующая проблема с запросом NHibernate.

один стол

LearnerDocuments :
    LearnerNumber
    CandidateNumber
    ....

другой стол

LearnerRegistration :
    LearnerId
    LearnerNumber
    ....

последний

Learner : 
    LearnerId 
    LearnerName 
    ....

Связь между LearnerDocuments и LearnerRegistration не существует.

Как мне написать запрос, который получает все LearnerRegistration, которые имеют LearnerDocuments?

1 Ответ

0 голосов
/ 14 ноября 2011
 criteria.CreateCriteria(typeof(LearnerRegistration), "av")
                    ......

                    .Add(Restrictions.IsNotNull("RegistrationNumber"))                    
                    .Add(Subqueries.PropertyIn("l.Id", detachedCriteria))

                 ;


            var candidate = DetachedCriteria.For<LearnerDocuments>("sd")
                        .SetProjection(Projections.ProjectionList()
                        .Add(Projections.Property("sd.CandidateNumber"))
                        .Add(Projections.Property("sd.RegistrationNumber")))
                        .Add(Restrictions.EqProperty("sd.CandidateNumber", "l.LearnerNumber") 
                        && Restrictions.EqProperty("sd.RegistrationNumber", "lr.RegistrationNumber")
                        );

            var proj = Projections.Conditional(Subqueries.Exists(candidate),Projections.Constant(true),Projections.Constant(false));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...