我有以下的數據庫表中定義:FluentNhibernate許多一對多和逆()
俱樂部:ID,姓名
會員:ID,姓名
ClubMember:ClubId,成員Id
我有以下實體類定義:
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逆意味着你不能做以下
session.Save(club.Members.Add(member));
但這個工程:
session.Save(member.Clubs.Add(club);
但它不沒有邏輯意義。我希望能夠與俱樂部成員或俱樂部成員保存俱樂部。
我想用FluentNhibernate做一些不可能的事情嗎?
TIA
清晰,簡明的響應。謝謝! – 2012-04-13 08:36:39