internal AbstractJoinDetector(NameGenerator nameGenerator, IIsEntityDecider isEntityDecider, Dictionary<string, NhJoinClause> joins, Dictionary<MemberExpression, QuerySourceReferenceExpression> expressionMap) { _nameGenerator = nameGenerator; _expressionMap = expressionMap; _joins = joins; _isEntityDecider = isEntityDecider; }
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; }
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; }
public MemberExpressionJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner, ISessionFactoryImplementor sessionFactory) { _isEntityDecider = isEntityDecider; _joiner = joiner; _sessionFactory = sessionFactory; }
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); } } }
WhereJoinDetector(NameGenerator nameGenerator, IIsEntityDecider isEntityDecider, Dictionary <string, NhJoinClause> joins, Dictionary <MemberExpression, QuerySourceReferenceExpression> expressionMap) : base(nameGenerator, isEntityDecider, joins, expressionMap) { }
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); } } }
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); } } }
internal WhereJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner) { _isEntityDecider = isEntityDecider; _joiner = joiner; }
internal WhereJoinDetector(IIsEntityDecider isEntityDecider, IJoiner joiner, ISessionFactoryImplementor sessionFactory) { _isEntityDecider = isEntityDecider; _joiner = joiner; _sessionFactory = sessionFactory; }