/// <summary> /// Constructs a new Relation object /// </summary> public Relation(Class cl) : base(cl) { // fields initialized with null are optional // fields initialized with "" are required fieldName = ""; mappingTable = null; referencedTypeName = ""; relationName = ""; }
/// <summary> /// Removes the ForeignKeyColumn object from the list of ForeignKeyColumns in the parent object. /// </summary> public override void Remove() { Relation r = Parent as Relation; if (r != null) { r.RemoveForeignKeyColumn(this); return; } MappingTable mt = Parent as MappingTable; if (mt != null) { mt.RemoveChildForeignKeyColumn(this); } }
internal Relation(XmlNode relNode, Class parent) : base(relNode, parent) { fieldName = relNode.Attributes["FieldName"].Value; referencedTypeName = relNode.Attributes["ReferencedTypeName"].Value; if (relNode.Attributes["AccessorName"] != null) { this.accessorName = relNode.Attributes["AccessorName"].Value; } if (relNode.Attributes["ForeignKeyTypeColumnName"] != null && relNode.Attributes["ForeignKeyTypeColumnName"].Value != string.Empty) { this.foreignKeyTypeColumnName = relNode.Attributes["ForeignKeyTypeColumnName"].Value; } if (relNode.Attributes["ForeignKeyColumnName"] != null) // Old mapping { ForeignKeyColumn fkColumn = new ForeignKeyColumn(this); fkColumn.Name = relNode.Attributes["ForeignKeyColumnName"].Value; this.foreignKeyColumns.Add(fkColumn); } else { XmlNodeList nl = relNode.SelectNodes(parent.Parent.selectForeignKeyColumns); foreach (XmlNode fkcNode in nl) { this.foreignKeyColumns.Add(new ForeignKeyColumn(fkcNode, this)); } } XmlNode mtNode = relNode.SelectSingleNode(Parent.Parent.selectMappingTable, Parent.Parent.nsmgr); if (null != mtNode) { mappingTable = new MappingTable(mtNode, this); } if (null != relNode.Attributes["RelationName"]) { relationName = relNode.Attributes["RelationName"].Value; } else { relationName = string.Empty; } }
private bool ForeignKeyColumnsAreDifferent(MappingTable t1, MappingTable t2) { var t1ChildForeignKeyColumns = t1.ChildForeignKeyColumns.ToList(); var t2ChildForeignKeyColumns = t2.ChildForeignKeyColumns.ToList(); if (t1ChildForeignKeyColumns.Count != t2ChildForeignKeyColumns.Count) { return(true); } for (int i = 0; i < t1ChildForeignKeyColumns.Count; i++) { ForeignKeyColumn fkc1 = t1ChildForeignKeyColumns[i]; ForeignKeyColumn fkc2 = t2ChildForeignKeyColumns[i]; if (ColumnsAreDifferent(fkc1, fkc2)) { return(true); } } return(false); }
/// <summary> /// Constructs a ForeignKeyIterator object, which iterates over all child foreign key columns of the given mapping table. /// </summary> /// <param name="mt"></param> public ForeignKeyIterator(MappingTable mt) { this.columns = mt.ChildForeignKeyColumns.ToList(); }