/// <summary> /// Генерирование критерия /// </summary> /// <param name="iCriteria">Критерий NHibernate</param> void IExpression.Compile(ref global::NHibernate.ICriteria iCriteria) { string propName = ""; global::NHibernate.Criterion.DetachedCriteria dCrit = null; propName = joinExpression != null?ParseExpression(joinExpression.Body) : joinProperty; if (propName.Length == 0) { throw new Exception("Необходимо указать поле."); } if (subCriteria == null) { throw new Exception("Необходимо указать подзапрос."); } dCrit = GetSubCriteria(subCriteria); //Получаем критерий подзапроса NHibernate switch (joinType) { case JoinExpressionType.In: iCriteria.Add(global::NHibernate.Criterion.Subqueries.PropertyIn(propName, dCrit)); break; case JoinExpressionType.NotIn: iCriteria.Add(global::NHibernate.Criterion.Subqueries.PropertyNotIn(propName, dCrit)); break; } }
public void Compile(ref global::NHibernate.ICriteria iCriteria) { iCriteria.Add(Compile(ref iCriteria, String.Empty)); }