private void AddToCurrentJoin( PathExpressionParser.CollectionElement ce )
		{
			AddToCurrentJoin( ce.Join.ToWhereFragmentString + ce.IndexValue.ToString() );
		}
		private string GetElementName( PathExpressionParser.CollectionElement element, QueryTranslator q )
		{
			string name;
			if( element.IsOneToMany )
			{
				name = element.Alias;
			}
			else
			{
				IType type = element.Type;
				System.Type clazz;

				if( type.IsEntityType )
				{
					//ie. a many-to-many
					clazz = ( ( EntityType ) type ).AssociatedClass;
					name = pathExpressionParser.ContinueFromManyToMany( clazz, element.ElementColumns, q );
				}
				else
				{
					throw new QueryException( "illegally dereferenced collection element" );
				}
			}
			return name;
		}