private void BindCompositeElement(HbmCompositeElement compositeElementMapping, Mapping.Collection model, IDictionary <string, MetaAttribute> inheritedMetas) { var component = new Component(model); model.Element = component; BindComponent(compositeElementMapping, component, null, null, model.Role + ".element", true, inheritedMetas); }
public void Component(Action <IComponentElementMapper <TElement> > componentMapping) { var hbm = new HbmCompositeElement { @class = TypeUtils.GetClassName(mapping, typeof(TElement)) }; componentMapping(new ComponentElementMapper <TElement>(mapping, hbm)); elementRelationshipAssing(hbm); }
public void Component(Action <IComponentElementMapper> mapping) { var hbm = new HbmCompositeElement { @class = collectionElementType.GetShortClassName(mapDoc) }; mapping(new ComponentElementMapper(collectionElementType, mapDoc, hbm)); elementRelationshipAssing(hbm); }
public void CallPropertyMapper() { var mapdoc = new HbmMapping(); var component = new HbmCompositeElement(); var mapper = new ComponentElementMapper(typeof(Address), mapdoc, component); var called = false; mapper.Property(typeof(Address).GetProperty("Street"), x => called = true); called.Should().Be.True(); }
public void CanMapProperty() { var mapdoc = new HbmMapping(); var component = new HbmCompositeElement(); var mapper = new ComponentElementMapper(typeof(Address), mapdoc, component); mapper.Property(typeof(Address).GetProperty("Street"), x => { }); component.Properties.Should().Have.Count.EqualTo(1); component.Properties.First().Name.Should().Be.EqualTo("Street"); }
public void CanMapParent() { var mapdoc = new HbmMapping(); var component = new HbmCompositeElement(); var mapper = new ComponentElementMapper(typeof(Address), mapdoc, component); mapper.Parent(typeof(Address).GetProperty("Parent")); component.Parent.Should().Not.Be.Null(); component.Parent.name.Should().Be.EqualTo("Parent"); }
public void BagIsPropertyOfComponent() { var mapper = new ModelMapper(); mapper.Class <OwnerWithIntermediate>(classMapper => { classMapper.Id(p => p.Id); classMapper.Component( p => p.Intermediate, componentMapper => componentMapper.Bag <OwnedItem> ( intermediate => intermediate.Children, bagPropertyMapper => { bagPropertyMapper.Table("Child"); bagPropertyMapper.Key(k => k.Column("Parent_Id")); }, r => r.Component(child => child.Property ( c => c.NameOnClient, pm => { pm.Column("NameInDatabase"); } ) ) ) ); }); var mappings = mapper.CompileMappingForAllExplicitlyAddedEntities(); HbmBag hbmBag = mappings .Items.Cast <HbmClass>() .Single() .Properties.Cast <HbmComponent>() .Single() .Properties.Cast <HbmBag>() .Single(); Assert.That(hbmBag.Item, Is.InstanceOf <HbmCompositeElement>()); HbmCompositeElement childElement = (HbmCompositeElement)hbmBag.Item; Assert.That(childElement.Properties.Count(), Is.EqualTo(1)); HbmProperty propertyMapping = childElement.Properties.Cast <HbmProperty>().Single(); Assert.That(propertyMapping.Name, Is.EqualTo("NameOnClient")); Assert.That(propertyMapping.Columns.Count(), Is.EqualTo(1)); Assert.That(propertyMapping.Columns.Single().name, Is.EqualTo("NameInDatabase")); }
public ComponentElementMapper(System.Type componentType, HbmMapping mapDoc, HbmCompositeElement component) { this.componentType = componentType; this.mapDoc = mapDoc; this.component = component; }
public void PropertyCustomizerDifferentiatesBetweenChildClasses() { var mapper = new ModelMapper(); mapper.Class <OwnerChildOne>(classMapper => { classMapper.Id(p => p.Id); classMapper.Bag <OwnedItem> ( parent => parent.OwnedItems, bagPropertyMapper => { bagPropertyMapper.Table("ChildOne"); bagPropertyMapper.Key(k => k.Column("Parent_Id")); }, r => r.Component( child => { child.Property ( c => c.NameOnClient, pm => { pm.Column("OwnerChildOne_CustomColumnName"); } ); } ) ); }); mapper.Class <OwnerChildTwo>(classMapper => { classMapper.Id(p => p.Id); classMapper.Bag <OwnedItem> ( parent => parent.OwnedItems, bagPropertyMapper => { bagPropertyMapper.Table("ChildTwo"); bagPropertyMapper.Key(k => k.Column("Parent_Id")); }, r => r.Component( child => { child.Property ( c => c.NameOnClient, pm => { pm.Column("OwnerChildTwo_CustomColumnName"); } ); } ) ); }); var mappings = mapper.CompileMappingForAllExplicitlyAddedEntities(); HbmBag bag1 = mappings .Items.Cast <HbmClass>() .Where(c => c.Name == typeof(OwnerChildOne).FullName) .Single() .Properties.Cast <HbmBag>() .Single(); HbmCompositeElement childElement1 = (HbmCompositeElement)bag1.Item; HbmProperty propertyMapping1 = childElement1.Properties.Cast <HbmProperty>().Single(); Assert.That(propertyMapping1.Columns.Single().name, Is.EqualTo("OwnerChildOne_CustomColumnName")); HbmBag bag2 = mappings .Items.Cast <HbmClass>() .Where(c => c.Name == typeof(OwnerChildTwo).FullName) .Single() .Properties.Cast <HbmBag>() .Single(); HbmCompositeElement childElement2 = (HbmCompositeElement)bag2.Item; HbmProperty propertyMapping2 = childElement2.Properties.Cast <HbmProperty>().Single(); Assert.That(propertyMapping2.Columns.Single().name, Is.EqualTo("OwnerChildTwo_CustomColumnName")); }
public ComponentElementMapper(HbmMapping mapDoc, HbmCompositeElement component) { this.mapDoc = mapDoc; this.component = component; }