Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
        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]);
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
 private void KeyColumnNaming(IModelInspector modelInspector, PropertyPath member, IIdBagPropertiesMapper propertyCustomizer)
 {
     propertyCustomizer.Key(keyMapper => keyMapper.Column(member.GetRootMember().ReflectedType.Name + "Id"));
 }
Ejemplo n.º 6
0
 private void MapTableName(IModelInspector modelInspector, PropertyPath member, IMapPropertiesMapper propertyCustomizer)
 {
     var ownerName = member.GetRootMember().ReflectedType.Name;
     var propertyName = member.ToColumnName();
     propertyCustomizer.Table(ownerName + propertyName);
 }
Ejemplo n.º 7
0
 private void MapKeyColumn(IModelInspector modelInspector, PropertyPath member, IMapPropertiesMapper propertyCustomizer)
 {
     propertyCustomizer.Key(km => km.Column(member.GetRootMember().ReflectedType.Name + "Id"));
 }