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); }
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); } }