1
votes

The title pretty much explains it all, I have a Member object that references 'Friends' who are also type Member.

 public class Member : Entity
    {
        public Member()
        {            
            Friends = new List<Member>();
        }

        public virtual IList<Member> Friends
        {
            get; set;
        }
     }

The schema generation tool makes it a 1:n relationship while it should be a n:n relationship i.e. a column is added to the member table called member_id and no connecting table is created.

Is there any way to make a Self referencing many to many relationships in Fluent NHibernate?

1

1 Answers

2
votes

Definitely possible. You just need to create an override

public class MemberOverride : IAutoMappingOverride<Member>
{
    public void Override(AutoMapping<Member> mapping)
    {
        mapping.HasManyToMany(m => m.Friends)
               .Table("MemberFriendsLinkTable");
               .ParentKeyColumn("MemberId")
               .ChildKeyColumn("FriendId");
    }
}

Just tell the auto mapping configuration where your overrides are to have these included.

EDIT: Updated to include Parent and Child key columns