[英]Self referencing many to many relationships in Fluent NHibernate automapping
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 an:n relationship ie a column is added to the member table called member_id and no connecting table is created. 模式生成工具使其成为1:n关系,而它应该是:n关系,即将列添加到名为member_id的成员表中,并且不创建连接表。
Is there any way to make a Self referencing many to many relationships in Fluent NHibernate? 有没有办法让自我在Fluent NHibernate中引用多对多的关系?
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 编辑:已更新以包括父键和子键列
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.