Ejemplo n.º 1
0
		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)
				}
			}
		}