internal AbstractJoinDetector(NameGenerator nameGenerator, IIsEntityDecider isEntityDecider, Dictionary<string, NhJoinClause> joins, Dictionary<MemberExpression, QuerySourceReferenceExpression> expressionMap)
 {
     _nameGenerator = nameGenerator;
     _expressionMap = expressionMap;
     _joins = joins;
     _isEntityDecider = isEntityDecider;
 }
예제 #2
0
 internal AbstractJoinDetector(NameGenerator nameGenerator, IIsEntityDecider isEntityDecider, Dictionary <string, NhJoinClause> joins, Dictionary <MemberExpression, QuerySourceReferenceExpression> expressionMap)
 {
     _nameGenerator   = nameGenerator;
     _expressionMap   = expressionMap;
     _joins           = joins;
     _isEntityDecider = isEntityDecider;
 }
		internal static void Find(Expression expression, NameGenerator nameGenerator, IIsEntityDecider isEntityDecider, Dictionary<string, NhJoinClause> joins, Dictionary<MemberExpression, QuerySourceReferenceExpression> expressionMap)
		{
			WhereJoinDetector f = new WhereJoinDetector(nameGenerator, isEntityDecider, joins, expressionMap);

			f.VisitExpression(expression);

			ExpressionValues values = f._values.Pop();

			foreach (var memberExpression in values.MemberExpressions)
			{
				// If outer join can never produce true, we can safely inner join.
				if (!values.GetValues(memberExpression).Contains(true))
				{
					f.MakeInnerIfJoined(memberExpression);
				}
			}
		}
		public MemberExpressionJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner)
		{
			_isEntityDecider = isEntityDecider;
			_joiner = joiner;
		}
예제 #5
0
		public SelectJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner)
		{
			_isEntityDecider = isEntityDecider;
			_joiner = joiner;
		}
 internal SelectAndOrderByJoinDetector(NameGenerator nameGenerator, IIsEntityDecider isEntityDecider, Dictionary<string, NhJoinClause> joins, Dictionary<MemberExpression, QuerySourceReferenceExpression> expressionMap)
     : base(nameGenerator, isEntityDecider, joins, expressionMap)
 {
 }
 public ResultOperatorAndOrderByJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner)
 {
     _isEntityDecider = isEntityDecider;
     _joiner          = joiner;
 }
예제 #8
0
 public MemberExpressionJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner, ISessionFactoryImplementor sessionFactory)
 {
     _isEntityDecider = isEntityDecider;
     _joiner          = joiner;
     _sessionFactory  = sessionFactory;
 }
		public ResultOperatorAndOrderByJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner)
		{
			_isEntityDecider = isEntityDecider;
			_joiner = joiner;
		}
예제 #10
0
        internal static void Find(Expression expression, NameGenerator nameGenerator, IIsEntityDecider isEntityDecider, Dictionary <string, NhJoinClause> joins, Dictionary <MemberExpression, QuerySourceReferenceExpression> expressionMap)
        {
            WhereJoinDetector f = new WhereJoinDetector(nameGenerator, isEntityDecider, joins, expressionMap);

            f._memberExpressionMappings.Push(new Dictionary <string, int>());

            f.VisitExpression(expression);

            foreach (var mapping in f._memberExpressionMappings.Pop())
            {
                // If outer join can never produce true, we can safely inner join.
                if ((mapping.Value & T) == 0)
                {
                    f.MakeInnerIfJoined(mapping.Key);
                }
            }
        }
예제 #11
0
 public SelectJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner)
 {
     _isEntityDecider = isEntityDecider;
     _joiner          = joiner;
 }
예제 #12
0
 WhereJoinDetector(NameGenerator nameGenerator, IIsEntityDecider isEntityDecider, Dictionary <string, NhJoinClause> joins, Dictionary <MemberExpression, QuerySourceReferenceExpression> expressionMap)
     : base(nameGenerator, isEntityDecider, joins, expressionMap)
 {
 }
예제 #13
0
        internal static void Find(Expression expression, NameGenerator nameGenerator, IIsEntityDecider isEntityDecider, Dictionary<string, NhJoinClause> joins, Dictionary<MemberExpression, QuerySourceReferenceExpression> expressionMap)
        {
            WhereJoinDetector f = new WhereJoinDetector(nameGenerator, isEntityDecider, joins, expressionMap);

            f._memberExpressionMappings.Push(new Dictionary<string, int>());

            f.VisitExpression(expression);

            foreach (var mapping in f._memberExpressionMappings.Pop())
            {
                // If outer join can never produce true, we can safely inner join.
                if ((mapping.Value & T) == 0)
                {
                    f.MakeInnerIfJoined(mapping.Key);
                }
            }
        }
예제 #14
0
        internal static void Find(Expression expression, NameGenerator nameGenerator, IIsEntityDecider isEntityDecider, Dictionary <string, NhJoinClause> joins, Dictionary <MemberExpression, QuerySourceReferenceExpression> expressionMap)
        {
            WhereJoinDetector f = new WhereJoinDetector(nameGenerator, isEntityDecider, joins, expressionMap);

            f.VisitExpression(expression);

            ExpressionValues values = f._values.Pop();

            foreach (var memberExpression in values.MemberExpressions)
            {
                // If outer join can never produce true, we can safely inner join.
                if (!values.GetValues(memberExpression).Contains(true))
                {
                    f.MakeInnerIfJoined(memberExpression);
                }
            }
        }
예제 #15
0
 public MemberExpressionJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner)
 {
     _isEntityDecider = isEntityDecider;
     _joiner          = joiner;
 }
예제 #16
0
		internal WhereJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner)
		{
			_isEntityDecider = isEntityDecider;
			_joiner = joiner;
		}
예제 #17
0
 internal WhereJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner)
 {
     _isEntityDecider = isEntityDecider;
     _joiner          = joiner;
 }
예제 #18
0
 internal WhereJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner, ISessionFactoryImplementor sessionFactory)
 {
     _isEntityDecider = isEntityDecider;
     _joiner          = joiner;
     _sessionFactory  = sessionFactory;
 }