private void IdBagTableName(IModelInspector modelInspector, PropertyPath member, IIdBagPropertiesMapper propertyCustomizer) { if (member.LocalMember.IsComponentCollection(Mapper.ModelInspector)) { propertyCustomizer.Table(member.GetRootMember().DeclaringType.Name + member.ToColumnName()); } else { propertyCustomizer.Table(BidirectionAssociation.AnalizeManyToMany(member.LocalMember).ManyToManyTablename); } }
private void NameKeyColumn(IModelInspector modelinspector, PropertyPath member, IBagPropertiesMapper propertycustomizer) { var association = BidirectionAssociation.AnalyzeManyToOne(member); var columnName = association.IsBidirectional ? association.ColumnNameOnCollectionSide : member.GetRootMember().ReflectedType.Name + "Id"; propertycustomizer.Key(keyMapper => keyMapper.Column(columnName)); propertycustomizer.Inverse(association.IsBidirectional); }
public static PropertyPath DepureFirstLevelIfCollection(this PropertyPath source) { // when the component is used as elements of a collection, the name of the property representing // the collection itself may be ignored since each collection will have its own table. // Note: In some cases may be a problem. const int penultimateOffset = 2; if (!source.GetRootMember().GetPropertyOrFieldType().IsGenericCollection()) { return(source); } var paths = source.InverseProgressivePath().ToArray(); return(paths[paths.Length - penultimateOffset]); }
private void IdBagHiloGenerator(IModelInspector modelInspector, PropertyPath member, IIdBagPropertiesMapper propertyCustomizer) { var hiloRowName = member.LocalMember.IsComponentCollection(Mapper.ModelInspector) ? member.GetRootMember().DeclaringType.Name + member.ToColumnName() : BidirectionAssociation.AnalizeManyToMany(member.LocalMember).ManyToManyTablename; propertyCustomizer.Id(idMap => { idMap.Generator(new EntityHighLowGeneratorDef(hiloRowName)); idMap.Column("Id"); idMap.Type((IIdentifierType)NHibernateUtil.Int64); }); Mapper.AddHiLoScript(EntityHighLowGenerator.GetInsertFor(hiloRowName)); }
private void KeyColumnNaming(IModelInspector modelInspector, PropertyPath member, IIdBagPropertiesMapper propertyCustomizer) { propertyCustomizer.Key(keyMapper => keyMapper.Column(member.GetRootMember().ReflectedType.Name + "Id")); }
private void MapTableName(IModelInspector modelInspector, PropertyPath member, IMapPropertiesMapper propertyCustomizer) { var ownerName = member.GetRootMember().ReflectedType.Name; var propertyName = member.ToColumnName(); propertyCustomizer.Table(ownerName + propertyName); }
private void MapKeyColumn(IModelInspector modelInspector, PropertyPath member, IMapPropertiesMapper propertyCustomizer) { propertyCustomizer.Key(km => km.Column(member.GetRootMember().ReflectedType.Name + "Id")); }