Пример #1
0
 public void AddOneToOne(OneToOneMapping mapping)
 {
     if (OneToOnes.Any(x => x.Name == mapping.Name))
     {
         throw new InvalidOperationException("Tried to add one-to-one '" + mapping.Name + "' when already added.");
     }
     AddMapping(mapping, MappingType.OneToOne);
 }
Пример #2
0
        void CategorizeProperty(ISessionFactory sessionfactory, IType prop, string name)
        {
            if (prop is ComponentType)
            {
                Components.Add(name, new Model(sessionfactory, (ComponentType)prop));
            }
            else if (prop is OneToOneType)
            {
                OneToOnes.Add(name, (OneToOneType)prop);
            }
            else if (prop is ManyToOneType)
            {
                BelongsTos.Add(name, (ManyToOneType)prop);
            }
            else if (prop is AnyType)
            {
                Anys.Add(name, (AnyType)prop);
            }
            else if (prop is CollectionType)
            {
                var ctype     = (CollectionType)prop;
                var persister = sessionfactory.GetCollectionMetadata(ctype.Role) as ICollectionPersister;
                if (persister == null)
                {
                    return;
                }

                if (persister.IsManyToMany)
                {
                    HasAndBelongsToManys.Add(name, new Collection(ctype, persister));
                }
                else
                {
                    HasManys.Add(name, new Collection(ctype, persister));
                }
            }
            else
            {
                Properties.Add(name, prop);
            }
        }