protected override ConvertibleMemberMapModel VisitConvertibleMember(ConvertibleMemberMapModel model) { this.ProcessMember(model); this.ProcessConvertibleMember(model); return base.VisitConvertibleMember(model); }
protected override PersistentMemberMapModel VisitPersistentMember(PersistentMemberMapModel model) { var memberType = ReflectionUtil.GetMemberValueType(model.Getter); var collectionConvention = this.conventions.GetCollectionConvention(memberType); if (collectionConvention.IsCollection(memberType)) { var newModel = new CollectionMemberMapModel() { Key = model.Key, Getter = model.Getter, Setter = model.Setter, PersistNull = model.PersistNull }; return (CollectionMemberMapModel)this.Visit(newModel); } else if (this.rootClassTypes.Contains(memberType)) { var newModel = new ManyToOneMapModel() { Key = model.Key, Getter = model.Getter, Setter = model.Setter, PersistNull = model.PersistNull }; return (ManyToOneMapModel)this.Visit(newModel); } else { var newModel = new ConvertibleMemberMapModel() { Key = model.Key, Getter = model.Getter, Setter = model.Setter, PersistNull = model.PersistNull }; return (ConvertibleMemberMapModel)this.Visit(newModel); } return base.VisitPersistentMember(model); }
private void ProcessConvertibleMember(ConvertibleMemberMapModel model) { if (model.ValueConverter == null) { model.ValueConverter = this.conventions .GetValueConverterConvention(model.Getter) .GetValueConverter(model.Getter); } }