protected override ManyToOneMapModel VisitManyToOneMember(ManyToOneMapModel model) { this.ProcessMember(model); if (!model.IsLazy.HasValue) { //TODO: Make this a convention... var memberType = ReflectionUtil.GetMemberValueType(model.Getter); model.IsLazy = memberType.IsSealed; } return base.VisitManyToOneMember(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); }