Esempio n. 1
0
        public void SetOrigin(FromElement origin, bool manyToMany)
        {
            _origin = origin;
            origin.AddDestination(this);

            if (origin.FromClause == FromClause)
            {
                // TODO: Figure out a better way to get the FROM elements in a proper tree structure.
                // If this is not the destination of a many-to-many, add it as a child of the origin.
                if (manyToMany)
                {
                    origin.AddSibling(this);
                }
                else
                {
                    if (!Walker.IsInFrom && !Walker.IsInSelect)
                    {
                        FromClause.AddChild(this);
                    }
                    else
                    {
                        origin.AddChild(this);
                    }
                }
            }
            else if (!Walker.IsInFrom)
            {
                // HHH-276 : implied joins in a subselect where clause - The destination needs to be added
                // to the destination's from clause.
                FromClause.AddChild(this);                      // Not sure if this is will fix everything, but it works.
            }
            else
            {
                // Otherwise, the destination node was implied by the FROM clause and the FROM clause processor
                // will automatically add it in the right place.
            }
        }
Esempio n. 2
0
		public void SetOrigin(FromElement origin, bool manyToMany)
		{
			_origin = origin;
			origin.AddDestination(this);

			if (origin.FromClause == FromClause)
			{
				// TODO: Figure out a better way to get the FROM elements in a proper tree structure.
				// If this is not the destination of a many-to-many, add it as a child of the origin.
				if (manyToMany)
				{
					origin.AddSibling(this);
				}
				else
				{
					if (!Walker.IsInFrom && !Walker.IsInSelect)
					{
						FromClause.AddChild(this);
					}
					else
					{
						origin.AddChild(this);
					}
				}
			}
			else if (!Walker.IsInFrom)
			{
				// HHH-276 : implied joins in a subselect where clause - The destination needs to be added
				// to the destination's from clause.
				FromClause.AddChild(this);	// Not sure if this is will fix everything, but it works.
			}
			else
			{
				// Otherwise, the destination node was implied by the FROM clause and the FROM clause processor
				// will automatically add it in the right place.
			}
		}