コード例 #1
0
ファイル: JoinExpression.cs プロジェクト: dmozhnov/EmpireERP
        /// <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;
            }
        }
コード例 #2
0
ファイル: OrExpression.cs プロジェクト: dmozhnov/EmpireERP
 public void Compile(ref global::NHibernate.ICriteria iCriteria)
 {
     iCriteria.Add(Compile(ref iCriteria, String.Empty));
 }