Exemplo n.º 1
0
 public void UnmapIntermediateClass(TableNode tn)
 {
     foreach (NDOTreeNode trn in tn.Nodes)
     {
         RelationNode rn = trn as RelationNode;
         if (rn == null)
         {
             continue;
         }
         rn.Remove();
         FkRelation fkRelation = rn.Relation as FkRelation;
         if (fkRelation != null)
         {
             if (fkRelation.RelationDirection != RelationDirection.DirectedFromMe)
             {
                 TableNode    relTn        = databaseNode.FindTableNode(fkRelation.RelatedTable, true);
                 RelationNode nodeToRemove = relTn.FindRelationNode(rn.Text, tn.Text);
                 if (nodeToRemove != null)
                 {
                     nodeToRemove.Remove();
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
        void RemoveRelationNodeFromTable(string tableName, string nodeName)
        {
            TableNode tn = (TableNode)databaseNode.FindNode(tableName);

            if (tn != null)
            {
                RelationNode relNode = (RelationNode)tn.FindNode(nodeName, typeof(RelationNode));
                if (relNode != null)
                {
                    relNode.Remove();
                }
                //tn.Nodes. Remove(relNode);
            }
        }
Exemplo n.º 3
0
        public void DeleteRelation(RelationNode relationNode)
        {
            FkRelation fkRelation = relationNode.Relation as FkRelation;
            TableNode  parentNode = null;

            if (fkRelation == null)
            {
                ForeignFkRelation ffkrel = relationNode.Relation as ForeignFkRelation;
                if (ffkrel == null)
                {
                    return;
                }
                parentNode   = (TableNode)this.databaseNode.FindNode(ffkrel.RelatedTable, typeof(TableNode));
                relationNode = parentNode.FindRelationNode(relationNode.Text, relationNode.Parent.Text);                //(RelationNode) parentNode.FindNode(relationNode.Text, typeof(RelationNode));
                fkRelation   = (FkRelation)relationNode.Relation;
                if (parentNode.Table.MappingType == TableMappingType.MappedAsIntermediateClass)
                {
                    parentNode.UnmapIntermediateClass(null, EventArgs.Empty);
                    return;
                }
            }
            else
            {
                parentNode = (TableNode)relationNode.Parent;
            }

            //parentNode.Nodes. Remove(relationNode);
            relationNode.Remove();
            parentNode.Nodes.Add(relationNode.OriginalColumnNode);

            Debug.Assert(fkRelation != null);
            if (fkRelation != null)
            {
                if (fkRelation.RelationDirection != RelationDirection.DirectedFromMe)
                {
                    TableNode    tn           = databaseNode.FindTableNode(fkRelation.RelatedTable, true);
                    RelationNode nodeToRemove = tn.FindRelationNode(relationNode.Text, parentNode.Text);
                    if (nodeToRemove != null)
                    {
                        nodeToRemove.Remove();
                    }
                }
            }
        }