private void MergeJoins(JoinFragment ojf) { foreach (KeyValuePair<string, JoinSequence> de in joins) { string name = de.Key; JoinSequence join = de.Value; join.SetSelector(new Selector(this)); if (typeMap.ContainsKey(name)) { ojf.AddFragment(join.ToJoinFragment(enabledFilters, true)); } else if (collections.ContainsKey(name)) { ojf.AddFragment(join.ToJoinFragment(enabledFilters, true)); } else { //name from a super query (a bit inelegant that it shows up here) } } }
private void MergeJoins( JoinFragment ojf ) { foreach( DictionaryEntry de in joins ) { string name = (string)de.Key; JoinFragment join = (JoinFragment) de.Value; if ( typeMap.Contains( name ) ) { IQueryable p = GetPersisterForName( name ); bool includeSubclasses = returnedTypes.Contains( name ) && !IsShallowQuery; bool isCrossJoin = crossJoins.Contains( name ); ojf.AddFragment( join ); ojf.AddJoins( p.FromJoinFragment( name, isCrossJoin, includeSubclasses ), p.QueryWhereFragment( name, isCrossJoin, includeSubclasses ) ); } else if ( collections.Contains( name ) ) { ojf.AddFragment(join); } else { //name from a super query (a bit inelegant that it shows up here) } } }