Пример #1
0
        public ManyToAnyMapper(System.Type elementType, System.Type foreignIdType, HbmManyToAny manyToAny, HbmMapping mapDoc)
        {
            if (elementType == null)
            {
                throw new ArgumentNullException("elementType");
            }
            if (foreignIdType == null)
            {
                throw new ArgumentNullException("foreignIdType");
            }
            if (manyToAny == null)
            {
                throw new ArgumentNullException("manyToAny");
            }
            this.elementType      = elementType;
            this.foreignIdType    = foreignIdType;
            this.manyToAny        = manyToAny;
            this.mapDoc           = mapDoc;
            this.manyToAny.idtype = this.foreignIdType.GetNhTypeName();
            var idHbmColumn = new HbmColumn();

            idColumnMapper = new ColumnMapper(idHbmColumn, DefaultIdColumnNameWhenNoProperty);
            var classHbmColumn = new HbmColumn();

            classColumnMapper = new ColumnMapper(classHbmColumn, DefaultMetaColumnNameWhenNoProperty);
            manyToAny.column  = new[] { classHbmColumn, idHbmColumn };
        }
Пример #2
0
        public void ManyToAny(System.Type idTypeOfMetaType, Action <IManyToAnyMapper> mapping)
        {
            var hbm = new HbmManyToAny();

            mapping(new ManyToAnyMapper(collectionElementType, idTypeOfMetaType, hbm, mapDoc));
            elementRelationshipAssing(hbm);
        }
Пример #3
0
        private void BindManyToAny(HbmManyToAny manyToAnyMapping, Mapping.Collection model)
        {
            var any = new Any(model.CollectionTable);

            model.Element          = any;
            any.IdentifierTypeName = manyToAnyMapping.idtype;
            new TypeBinder(any, Mappings).Bind(manyToAnyMapping.idtype);
            BindAnyMeta(manyToAnyMapping, any);
            new ColumnsBinder(any, Mappings).Bind(manyToAnyMapping.Columns, true,
                                                  () =>
                                                  new HbmColumn
            {
                name = mappings.NamingStrategy.PropertyToColumnName(manyToAnyMapping.column1)
            });
        }