private void Join <SubType>(ClasslikeMapBase <T> map, Action <ClasslikeMapBase <SubType> > action, string tableName) where SubType : EntityBase { var t = typeof(T); var st = typeof(SubType); tableName = string.IsNullOrEmpty(tableName) ? st.Name : tableName; var subclassMap = new SubclassMap <SubType>(); subclassMap.Extends <T>(); using (_mapper.OverrideJoinContext("[" + tableName + "]", tableName + "ID")) { if (subclassMap.AnythingToMap()) { subclassMap.Join(_mapper.JoinContext.TableName, x => { x.KeyColumn(_mapper.JoinContext.KeyColumnName); x.AutoMap(); if (action != null) { action(x); } }); } else if (action != null) { action(subclassMap); } } _mapper.Config.FluentMappings.Add(subclassMap); }
public static SubclassMapping map_as_subclass <T>(Action <SubclassMap <T> > setup) { var provider = new SubclassMap <T>(); setup(provider); return(((IIndeterminateSubclassMappingProvider)provider).GetSubclassMapping(SubclassType.Subclass)); }
public virtual MappingTester <T> SubClassMapping <TSubClass>(Action <SubclassMap <TSubClass> > action) where TSubClass : T { var map = new SubclassMap <TSubClass>(); action(map); this.model.Add(map); return(this); }
private void Mapping(Action <SubclassMap <ExampleInheritedClass> > mappingDefinition) { var classMap = new ClassMap <ExampleClass>(); var subclassMap = new SubclassMap <ExampleInheritedClass>(); mappingDefinition(subclassMap); model.Add(subclassMap); mapping = classMap; mappingType = typeof(ExampleClass); }
public void ShouldSetForeignKeyOnJoinedSubclasses() { var classMap = new ClassMap<ExampleClass>(); var subclassMap = new SubclassMap<ExampleInheritedClass>(); model.Add(classMap); model.Add(subclassMap); model.BuildMappings() .First() .Classes.First() .Subclasses.Cast<JoinedSubclassMapping>().First() .Key.Columns.First().Name.ShouldEqual("ExampleClass!"); }
public void ShouldSetForeignKeyOnJoinedSubclasses() { var classMap = new ClassMap <ExampleClass>(); var subclassMap = new SubclassMap <ExampleInheritedClass>(); model.Add(classMap); model.Add(subclassMap); model.BuildMappings() .First() .Classes.First() .Subclasses.Cast <JoinedSubclassMapping>().First() .Key.Columns.First().Name.ShouldEqual("ExampleClass!"); }
private void Mapping(Action <SubclassMap <ExampleInheritedClass> > mappingDefinition) { var classMap = new ClassMap <ExampleClass>(); classMap.DiscriminateSubClassesOnColumn("col"); var subclassMap = new SubclassMap <ExampleInheritedClass>(); mappingDefinition(subclassMap); model.Add(subclassMap); mapping = classMap; mappingType = typeof(ExampleClass); }
private void VerifyModel(Action <JoinedSubclassMapping> modelVerification) { var classMap = new ClassMap <ExampleClass>(); var subclassMap = new SubclassMap <ExampleInheritedClass>(); model.Add(classMap); model.Add(subclassMap); var generatedModels = model.BuildMappings(); var modelInstance = generatedModels .First(x => x.Classes.FirstOrDefault(c => c.Type == typeof(ExampleClass)) != null) .Classes.First() .Subclasses.First(); modelVerification((JoinedSubclassMapping)modelInstance); }
public void ShouldAllowSettingOfKeyInConvention() { var model = new PersistenceModel(); var parent = new ClassMap<Parent>(); var child = new SubclassMap<Child>(); model.Add(parent); model.Add(child); model.Conventions.Add<SCKeyConvention>(); var subclass = model.BuildMappings() .SelectMany(x => x.Classes) .First() .Subclasses.First(); ((JoinedSubclassMapping)subclass).Key.Columns.First().Name.ShouldEqual("xxx"); ((JoinedSubclassMapping)subclass).Key.Columns.Count().ShouldEqual(1); }
public void ShouldAllowSettingOfKeyInConvention() { var model = new PersistenceModel(); var parent = new ClassMap <Parent>(); var child = new SubclassMap <Child>(); model.Add(parent); model.Add(child); model.Conventions.Add <SCKeyConvention>(); var subclass = model.BuildMappings() .SelectMany(x => x.Classes) .First() .Subclasses.First(); ((JoinedSubclassMapping)subclass).Key.Columns.First().Name.ShouldEqual("xxx"); ((JoinedSubclassMapping)subclass).Key.Columns.Count().ShouldEqual(1); }
private void Subclass <TSubType>(ClasslikeMapBase <T> mapping, Action <ClasslikeMapBase <TSubType> > action) where TSubType : EntityBase { var t = typeof(T); var st = typeof(TSubType); var subclassMap = new SubclassMap <TSubType>(); subclassMap.Extends <T>(); if (_mapper.JoinContext != null) { if (subclassMap.AnythingToMap()) { subclassMap.Join(_mapper.JoinContext.TableName, x => { x.KeyColumn(_mapper.JoinContext.KeyColumnName); x.AutoMap(); if (action != null) { action(x); } }); } else if (action != null) { action(subclassMap); } } else { if (subclassMap.AnythingToMap()) { subclassMap.AutoMap(); } if (action != null) { action(subclassMap); } } _mapper.Config.FluentMappings.Add(subclassMap); }
private void VerifyModel(Action<SubclassMapping> modelVerification) { var classMap = new ClassMap<ExampleClass>(); classMap.Id(x => x.Id); classMap.DiscriminateSubClassesOnColumn("col"); var subclassMap = new SubclassMap<ExampleInheritedClass>(); model.Add(classMap); model.Add(subclassMap); var generatedModels = model.BuildMappings(); var modelInstance = generatedModels .First(x => x.Classes.FirstOrDefault(c => c.Type == typeof(ExampleClass)) != null) .Classes.First() .Subclasses.First(); modelVerification((SubclassMapping)modelInstance); }
private void VerifyModel(Action <SubclassMapping> modelVerification) { var classMap = new ClassMap <ExampleClass>(); classMap.Id(x => x.Id); classMap.DiscriminateSubClassesOnColumn("col"); var subclassMap = new SubclassMap <ExampleInheritedClass>(); model.Add(classMap); model.Add(subclassMap); var generatedModels = model.BuildMappings(); var modelInstance = generatedModels .First(x => x.Classes.FirstOrDefault(c => c.Type == typeof(ExampleClass)) != null) .Classes.First() .Subclasses.First(); modelVerification((SubclassMapping)modelInstance); }
public void ComponentWithPropertiesShouldAddToModelComponentsCollection() { var classMap = new ClassMap <Parent>(); classMap.Id(x => x.Id); var subclassMap = new SubclassMap <Child>(); subclassMap.Component(x => x.Component, c => c.Map(x => x.Name)); var model = new PersistenceModel(); model.Add(classMap); model.Add(subclassMap); model.BuildMappings() .First() .Classes.First() .Subclasses.First() .Components.Count().ShouldEqual(1); }
public void ComponentWithPropertiesShouldAddToModelComponentsCollection() { var classMap = new ClassMap<Parent>(); classMap.Id(x => x.Id); var subclassMap = new SubclassMap<Child>(); subclassMap.Component(x => x.Component, c => c.Map(x => x.Name)); var model = new PersistenceModel(); model.Add(classMap); model.Add(subclassMap); model.BuildMappings() .First() .Classes.First() .Subclasses.First() .Components.Count().ShouldEqual(1); }
private void Mapping(Action<SubclassMap<ExampleInheritedClass>> mappingDefinition) { var classMap = new ClassMap<ExampleClass>(); var subclassMap = new SubclassMap<ExampleInheritedClass>(); mappingDefinition(subclassMap); model.Add(subclassMap); mapping = classMap; mappingType = typeof(ExampleClass); }
public static string GenerateFkName <TSource, TPropValue>(this SubclassMap <TSource> mapper, Expression <Func <TSource, TPropValue> > propertyExpression) { return(GenerateFkName(propertyExpression)); }
private void Mapping(Action<SubclassMap<ExampleInheritedClass>> mappingDefinition) { var classMap = new ClassMap<ExampleClass>(); classMap.Id(x => x.Id); classMap.DiscriminateSubClassesOnColumn("col"); var subclassMap = new SubclassMap<ExampleInheritedClass>(); mappingDefinition(subclassMap); model.Add(subclassMap); mapping = classMap; mappingType = typeof(ExampleClass); }
public static string GenerateFkName <TSource, TFkParent>(this SubclassMap <TSource> mapper) { return("U5_FK_" + typeof(TSource).Name + "_" + typeof(TFkParent).Name); }
private void VerifyModel(Action<JoinedSubclassMapping> modelVerification) { var classMap = new ClassMap<ExampleClass>(); var subclassMap = new SubclassMap<ExampleInheritedClass>(); model.Add(classMap); model.Add(subclassMap); var generatedModels = model.BuildMappings(); var modelInstance = generatedModels .First(x => x.Classes.FirstOrDefault(c => c.Type == typeof(ExampleClass)) != null) .Classes.First() .Subclasses.First(); modelVerification((JoinedSubclassMapping)modelInstance); }