У меня есть следующий запрос Fluent NHibernate, используя QueryOver:Fluent NHibernate: LEFT OUTER JOIN ... И Запрос
IQueryOver<Task> query = session
.QueryOver<Task>()
.JoinAlias(x => x.Subject,() => subject, JoinType.LeftOuterJoin)
.JoinAlias(() => subject.Localizations,() => localization, JoinType.LeftOuterJoin)
.Where(() => localization.Language.Id == languageId || localization.Language.Id == null);
.Where(x => x.UserId == userId)
Это выполняет следующий запрос:
SELECT * FROM Tasks left outer join Subjects on Tasks.SubjectId = Subjects.IdAsignatura
left outer join Languages on Subjects.SubjectId=Languages.SubjectId
WHERE Tasks.UserId = xxx
and (Languages.LanguageId = yyy or Languages.LanguageId = is null)
Я хотел бы избежать последняя строка, используя "LEFT OUTER JOIN ... И" как это:
SELECT * FROM Tasks left outer join Subjects on Tasks.SubjectId = Subjects.IdAsignatura
left outer join Languages on Subjects.SubjectId=Languages.SubjectId AND Languages.LanguageId = yyy
WHERE Tasks.UserId = xxx
есть ли способ, чтобы выполнить "LEFT OUTER JOIN ... И" Fl uent NHibernate запросы?
Thak you very much. Ваш ответ правильный, но я думаю, что «|| localization.Language.Id == null» не требуется с LeftOuterJoin. –
Вряд ли - правильно. Я попытался показать КАК ... так что ты прав ...;) Просто хотел показать, что это ** ** с NHibernate, и не продумал реального контента. Отлично, если это помогло. Наслаждайтесь Nhibernate @Freerider;) * (также обновленный ответ) * –
Благодарим вас за исправление. –