コード例 #1
0
ファイル: OrExpression.cs プロジェクト: dmozhnov/EmpireERP
        public global::NHibernate.Criterion.ICriterion Compile(ref global::NHibernate.ICriteria iCriteria, string alias)
        {
            var leftExpr  = left.Compile(ref iCriteria, alias);
            var rightExpr = right.Compile(ref iCriteria, alias);

            return(global::NHibernate.Criterion.Expression.Or(leftExpr, rightExpr));
        }
コード例 #2
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;
            }
        }
コード例 #3
0
ファイル: JoinExpression.cs プロジェクト: dmozhnov/EmpireERP
        /// <summary>
        /// Компиляция выражения в ICriterion NHibernate
        /// </summary>
        /// <returns></returns>
        global::NHibernate.Criterion.ICriterion IExpression.Compile(ref global::NHibernate.ICriteria iCriteria, string alias)
        {
            string propName = "";

            global::NHibernate.Criterion.DetachedCriteria dCrit = null;

            propName = joinExpression != null?ParseExpression(joinExpression.Body) : (String.IsNullOrEmpty(alias) ? "" : alias + '.') + joinProperty;

            if (propName.Length == 0)
            {
                throw new Exception("Необходимо указать поле.");
            }
            if (subCriteria == null)
            {
                throw new Exception("Необходимо указать подзапрос.");
            }

            dCrit = GetSubCriteria(subCriteria);    //Получаем критерий подзапроса NHibernate

            switch (joinType)
            {
            case JoinExpressionType.In:
                return(global::NHibernate.Criterion.Subqueries.PropertyIn(propName, dCrit));

            case JoinExpressionType.NotIn:
                return(global::NHibernate.Criterion.Subqueries.PropertyNotIn(propName, dCrit));
            }

            return(null);
        }
コード例 #4
0
ファイル: OrExpression.cs プロジェクト: dmozhnov/EmpireERP
 public void Compile(ref global::NHibernate.ICriteria iCriteria)
 {
     iCriteria.Add(Compile(ref iCriteria, String.Empty));
 }