コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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);
                }
            }
        }