Я пытаюсь добиться следующего SQL Statement с помощью LINQ к NHibernate:NHibernate: LINQ к NHibernate я присоединиться к
SELECT a.JOB_ID ID FROM SERVICE_DATA a WHERE STEP_ID = x and (STATUS = 'Success' or STATUS = 'Skipped')
AND a.JOB_ID not in (SELECT JOB_ID FROM SERVICE_DATA WHERE JOB_ID = a.JOB_ID AND STATUS = 'Error')
AND a.JOB_ID not in (SELECT JOB_ID FROM SERVICE_DATA WHERE STEP_ID = y and (STATUS = 'Success' or STATUS = 'Skipped' or STATUS = 'Error'));
В настоящее время я нахожусь в состоянии выбрать все ожидают, что 1-ое НЕ автообъединение состояние с помощью:
DetachedCriteria secondSubCriteria = DetachedCriteria.For<ServiceData>()
.SetProjection(Projections.Property("JobId"))
.Add(Restrictions.Eq("StepId", stepId))
.Add(Restrictions.Disjunction()
.Add(Restrictions.Eq("Status", "Success"))
.Add(Restrictions.Eq("Status", "Skipped"))
.Add(Restrictions.Eq("Status", "Error")));
var data = session.CreateCriteria<ServiceData>()
.Add(Restrictions.Eq("StepId", stepId))
.Add(Restrictions.Disjunction()
.Add(Restrictions.Eq("Status", "Success"))
.Add(Restrictions.Eq("Status", "Skipped")))
//.Add(Subqueries.PropertyNotIn("JobId", ???))
.Add(Subqueries.PropertyNotIn("JobId", secondSubCriteria))
.List<ServiceData>()
.Take(1)
.FirstOrDefault();
Как я получить автообъединение на основе jOB_ID колонки работать на первых субкритериям в примере?