private void LoadCompositeKey() { var compositeKey = EntitySource.Root.Descendant("composite-id", XmlNamespace); if (compositeKey == null) { return; } var keys = compositeKey.Descendants("key-property", XmlNamespace); foreach (var key in keys) { var property = new NHibernateProperty(key, this); Key.Properties.Add(property); } var foreignKeys = compositeKey.Descendants("key-many-to-one", XmlNamespace); foreach (var foreignKey in foreignKeys) { var association = NHibernateAssociation.FromElement(this, foreignKey, foreignKey, AssociationType.ManyToOne, XmlNamespace); if (association != null) { if (!AssociationMap.ContainsKey(association.Name)) { AssociationMap.Add(association.Name, association); } Key.Associations.Add(association); } } }
protected override void LoadAssociations() { foreach (var associate in EntitySource.Root.Descendants("many-to-one", XmlNamespace)) { var association = NHibernateAssociation.FromElement(this, associate, associate, AssociationType.ManyToOne, XmlNamespace); if (association != null && !AssociationMap.ContainsKey(association.Name)) { AssociationMap.Add(association.Name, association); } } var bags = EntitySource.Root.Descendants("bag", XmlNamespace); foreach (var bag in bags) { var oneToMany = bag.Descendant("one-to-many", XmlNamespace); var association = NHibernateAssociation.FromElement(this, bag, oneToMany, AssociationType.OneToMany, XmlNamespace); if (association != null && !AssociationMap.ContainsKey(association.Name)) { AssociationMap.Add(association.Name, association); } var manyToMany = bag.Descendant("many-to-many", XmlNamespace); association = NHibernateAssociation.FromElement(this, bag, manyToMany, AssociationType.ManyToMany, XmlNamespace); if (association != null && !AssociationMap.ContainsKey(association.Name)) { AssociationMap.Add(association.Name, association); } } }