private static ICriterion CreateDetailExpression(Parameter p) { if (p.Comparison == Comparison.NotNull) { return(Subqueries.PropertyIn("ID", DetachedCriteria.For <ContentDetail>() .SetProjection(Projections.Property("EnclosingItem.ID")) .Add(Expression.Eq("Name", p.Name)))); } if (p.Comparison == Comparison.Null) { return(Subqueries.PropertyNotIn("ID", DetachedCriteria.For <ContentDetail>() .SetProjection(Projections.Property("EnclosingItem.ID")) .Add(Expression.Eq("Name", p.Name)))); } string propertyName = p.Comparison.HasFlag(Comparison.In) ? ContentDetail.GetAssociatedEnumerablePropertyName(p.Value as IEnumerable) : ContentDetail.GetAssociatedPropertyName(p.Value); var subselect = DetachedCriteria.For <ContentDetail>() .SetProjection(Projections.Property("EnclosingItem.ID")) .Add(CreateExpression(propertyName, ContentDetail.ExtractQueryValue(p.Value), p.Comparison, true)); if (p.Name != null) { subselect = subselect.Add(Expression.Eq("Name", p.Name)); } return(Subqueries.PropertyIn("ID", subselect)); }
public virtual void SetParameters(NHibernate.IQuery query, int index) { for (int i = 0; i < Values.Length; i++) { query.SetParameter(GetParameterName(index, i), ContentDetail.ExtractQueryValue(Values[i])); } }
public override void SetParameters(NHibernate.IQuery query, int index) { if (this.Name != null) { query.SetParameter(GetNameParameterName(index), Name); } query.SetParameter(GetValueParameterName(index), ContentDetail.ExtractQueryValue(Value)); }
public void SetParameters(NHibernate.IQuery query, int index) { if (name != null) { query.SetParameter(GetNameParameterName(index), name); } query.SetParameter("lb" + index, ContentDetail.ExtractQueryValue(lowerBound)); query.SetParameter("ub" + index, ContentDetail.ExtractQueryValue(upperBound)); }