public void Visit(IDomainMap domainMap) { bool isFixed = domainMap.IsFixed(); if (isFixed) domainMap.UnFixate(); Hashtable newInverseProperties = new Hashtable(); foreach (IClassMap classMap in domainMap.ClassMaps) { if (classMap.ClassType.Equals(ClassType.Class) || classMap.ClassType.Equals(ClassType.Default)) { foreach (IPropertyMap propertyMap in classMap.PropertyMaps) { CreateInverseProperty(propertyMap, newInverseProperties); } } } foreach (IClassMap classMap in newInverseProperties.Keys) { if (classMap.ClassType.Equals(ClassType.Class) || classMap.ClassType.Equals(ClassType.Default)) { IList inverseProperties = (IList)newInverseProperties[classMap]; foreach (IPropertyMap inverseProperty in inverseProperties) { inverseProperty.ClassMap = classMap; } } } if (isFixed) domainMap.Fixate(); }
public void Visit(IDomainMap domainMap) { bool isFixed = domainMap.IsFixed(); if (isFixed) { domainMap.UnFixate(); } Hashtable newInverseProperties = new Hashtable(); foreach (IClassMap classMap in domainMap.ClassMaps) { if (classMap.ClassType.Equals(ClassType.Class) || classMap.ClassType.Equals(ClassType.Default)) { foreach (IPropertyMap propertyMap in classMap.PropertyMaps) { CreateInverseProperty(propertyMap, newInverseProperties); } } } foreach (IClassMap classMap in newInverseProperties.Keys) { if (classMap.ClassType.Equals(ClassType.Class) || classMap.ClassType.Equals(ClassType.Default)) { IList inverseProperties = (IList)newInverseProperties[classMap]; foreach (IPropertyMap inverseProperty in inverseProperties) { inverseProperty.ClassMap = classMap; } } } if (isFixed) { domainMap.Fixate(); } }