标题几乎解释了这一切,我有一个成员对象,引用了也是类型成员的'朋友'。
public class Member : Entity
{
public Member()
{
Friends = new List<Member>();
}
public virtual IList<Member> Friends
{
get; set;
}
}
模式生成工具使它成为1:n关系,而它应该是n:n关系,即一个列被添加到名为member_id的成员表中,并且不会创建连接表。
有没有办法让自我在Fluent NHibernate中引用多对多的关系?
答案 0 :(得分:2)
绝对有可能。您只需要创建覆盖
public class MemberOverride : IAutoMappingOverride<Member>
{
public void Override(AutoMapping<Member> mapping)
{
mapping.HasManyToMany(m => m.Friends)
.Table("MemberFriendsLinkTable");
.ParentKeyColumn("MemberId")
.ChildKeyColumn("FriendId");
}
}
告诉自动映射配置,您的替换将包含这些配置。
编辑:已更新,包括父键和子键列