我定义了以下数据库表:
俱乐部:身份证、姓名
成员:ID、姓名
ClubMember:ClubId、MemberId
我定义了以下实体类:
public class Club() {
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Member> Members { get; set; }
}
public class Member() {
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Club> Clubs { get; set; }
}
我定义了以下覆盖:
public class MemberOverride : IAutoMappingOverride<Member>
{
public void Override(AutoMapping<Member> mapping_)
{
mapping_
.HasManyToMany(x_ => x_.Clubs)
.ParentKeyColumn("MemberId")
.ChildKeyColumn("ClubId")
.Cascade.All()
.Table("ClubMembers");
}
}
public class ClubOverride : IAutoMappingOverride<Club>
{
public void Override(AutoMapping<Club> mapping_)
{
mapping_
.HasManyToMany(x_ => x_.Members)
.ParentKeyColumn("ClubId")
.ChildKeyColumn("MemberId")
.Inverse()
.Table("ClubMembers");
}
}
我可以从我的覆盖中看到 ClubOverride 上的 Inverse 意味着您不能执行以下操作
session.Save(club.Members.Add(member));
但这有效:
session.Save(member.Clubs.Add(club);
但这没有逻辑意义。我希望能够保存有会员的俱乐部或有俱乐部的会员。
我想用 FluentNhibernate 做一些不可能的事情吗?
TIA