public override void Enumerate(IMemberCompletionAcceptor acceptor)
        {
            List <TableRelationData> tableRelationDataList = new List <TableRelationData>();

            TableRefBinding[] tableRefBindings = _queryScope.GetAllTableRefBindings();
            Array.Reverse(tableRefBindings);

            foreach (TableRefBinding joinSourceTableRef in tableRefBindings)
            {
                TableBinding          joinSource     = joinSourceTableRef.TableBinding;
                IList <TableRelation> tableRelations = _scope.DataContext.TableRelations.GetRelations(joinSource);

                foreach (TableRelation tableRelation in tableRelations)
                {
                    TableBinding joinTarget;

                    if (tableRelation.ParentTable == joinSource)
                    {
                        joinTarget = tableRelation.ChildTable;
                    }
                    else
                    {
                        joinTarget = tableRelation.ParentTable;
                    }

                    foreach (TableRefBinding joinTargetTableRef in tableRefBindings)
                    {
                        if (joinTargetTableRef.TableBinding == joinTarget)
                        {
                            TableRelationData tableRelationData = new TableRelationData();
                            tableRelationData.Relation = tableRelation;
                            tableRelationData.Child    = joinTargetTableRef;
                            tableRelationData.Parent   = joinSourceTableRef;
                            tableRelationDataList.Add(tableRelationData);
                        }
                    }
                }
            }

            foreach (TableRelationData tableRelationData in tableRelationDataList)
            {
                acceptor.AcceptRelation(tableRelationData.Parent, tableRelationData.Child, tableRelationData.Relation);
            }
        }
		public override void Enumerate(IMemberCompletionAcceptor acceptor)
		{
			List<TableRelationData> tableRelationDataList = new List<TableRelationData>();

			TableRefBinding[] tableRefBindings = _queryScope.GetAllTableRefBindings();
			Array.Reverse(tableRefBindings);

			foreach (TableRefBinding joinSourceTableRef in tableRefBindings)
			{
				TableBinding joinSource = joinSourceTableRef.TableBinding;
                IList<TableRelation> tableRelations = _scope.DataContext.TableRelations.GetRelations(joinSource);
				
				foreach (TableRelation tableRelation in tableRelations)
				{
					TableBinding joinTarget;

					if (tableRelation.ParentTable == joinSource)
						joinTarget = tableRelation.ChildTable;
					else
						joinTarget = tableRelation.ParentTable;

					foreach (TableRefBinding joinTargetTableRef in tableRefBindings)
					{
						if (joinTargetTableRef.TableBinding == joinTarget)
						{
							TableRelationData tableRelationData = new TableRelationData();
							tableRelationData.Relation = tableRelation;
							tableRelationData.Child = joinTargetTableRef;
							tableRelationData.Parent = joinSourceTableRef;
							tableRelationDataList.Add(tableRelationData);
						}
					}
				}
			}

			foreach (TableRelationData tableRelationData in tableRelationDataList)
				acceptor.AcceptRelation(tableRelationData.Parent, tableRelationData.Child, tableRelationData.Relation);
		}