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 }; }
public void ManyToAny(System.Type idTypeOfMetaType, Action <IManyToAnyMapper> mapping) { var hbm = new HbmManyToAny(); mapping(new ManyToAnyMapper(collectionElementType, idTypeOfMetaType, hbm, mapDoc)); elementRelationshipAssing(hbm); }
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) }); }