У меня есть два объекта RR и TT с RR.TT_Id (FK) -> TT.Id (PK)
Я хочу отфильтровать записи из RR согласно следующему запросу:
SELECT RR.* FROM RR
LEFT OUTER JOIN TT ON RR.TT_Id = TT.Id
WHERE TT.Type <> :type ")
.SetEnum("type", T_TypeEnum.XX)
Итак, добавили критерии следующим образом:
List<RR> lstReportRequests = new List<RR>();
var subQuery = DetachedCriteria.For<TT>()
.Add(Restrictions.Not(Restrictions.Eq("Type", T_TypeEnum.XX)))
.SetProjection(Projections.Id());
IList<ICriterion> criterions = new List<ICriterion>();
criterions.Add(Restrictions.Eq(RefHelper.ToString<RR>(x => x.OfficeId), officeId));
criterions.Add(Restrictions.In("TT_Id", subQuery)); //*....error - need a collection for second argument*
IMultiCriteria c = session.CreateMultiCriteria();
c.ApplyStrategy<RR>(criterions, strategy.StrategyElements);
Но при попытке добавить DetachedCriterion к IMultiCriteria возникает ошибка -
не может преобразовать из 'NHibernate.Criterion.DetachedCriteria' в 'System.Collections.ICollection '
Подскажите, пожалуйста, как исправить вышеуказанную ошибку?
Спасибо!